From: Mathieu Malaterre Date: Fri, 21 Mar 2025 11:45:44 +0000 (+0100) Subject: dcmtk (3.6.9-5) unstable; urgency=medium X-Git-Tag: archive/raspbian/3.6.9-5+rpi1^2~10 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=46d2ce57616216d4f379332a1a4d5c22bf6a9003;p=dcmtk.git dcmtk (3.6.9-5) unstable; urgency=medium * d/control: relax dependency on dcmtk-data. Closes: #1098944 * 0012-CVE-2025-2357.patch: new: fix CVE-2025-2357. (Closes: #1100724) * documentation: Spring cleanups. Closes: #1095639 [dgit import unpatched dcmtk 3.6.9-5] --- 46d2ce57616216d4f379332a1a4d5c22bf6a9003 diff --cc debian/.directory index 00000000,00000000..8fa2f8fd new file mode 100644 --- /dev/null +++ b/debian/.directory @@@ -1,0 -1,0 +1,2 @@@ ++[URL properties] ++ViewMode=fsview_part diff --cc debian/changelog index 00000000,00000000..68b4d6f7 new file mode 100644 --- /dev/null +++ b/debian/changelog @@@ -1,0 -1,0 +1,1021 @@@ ++dcmtk (3.6.9-5) unstable; urgency=medium ++ ++ * d/control: relax dependency on dcmtk-data. Closes: #1098944 ++ * 0012-CVE-2025-2357.patch: new: fix CVE-2025-2357. (Closes: #1100724) ++ * documentation: Spring cleanups. Closes: #1095639 ++ ++ -- Mathieu Malaterre Fri, 21 Mar 2025 12:45:44 +0100 ++ ++dcmtk (3.6.9-4) unstable; urgency=medium ++ ++ * Team upload. ++ * Reinstate 0007-CVE-2024-47796.patch and 0008-CVE-2024-52333.patch. ++ These were not part of dcmtk 3.6.9 upstream and still apply. ++ Thanks to Salvatore Bonaccorso ++ * 0009-CVE-2025-25475.patch: new: fix CVE-2025-25475. (Closes: #1098373) ++ * 0010-CVE-2025-25474.patch: new: fix CVE-2025-25474. (Closes: #1098374) ++ * 0011-CVE-2025-25472.patch: new: fix CVE-2025-25472. ++ ++ -- Étienne Mollier Wed, 19 Feb 2025 22:30:57 +0100 ++ ++dcmtk (3.6.9-3) unstable; urgency=medium ++ ++ * d/patches: Remove old unused patches ++ * d/doc: Make sure to reference 3.6.9 path ++ * d/watch: Properly watch upstream on github ++ ++ -- Mathieu Malaterre Tue, 18 Feb 2025 12:05:41 +0100 ++ ++dcmtk (3.6.9-2) experimental; urgency=medium ++ ++ * d/t/run-unit-test: Adapt to new installation ++ ++ -- Mathieu Malaterre Tue, 11 Feb 2025 08:12:50 +0100 ++ ++dcmtk (3.6.9-1) experimental; urgency=medium ++ ++ * New upstream version 3.6.9 ++ * d/install: Migrate to new SOVERSION ++ * d/patches: Refresh patches ++ ++ -- Mathieu Malaterre Thu, 30 Jan 2025 13:16:59 +0100 ++ ++dcmtk (3.6.8-7) unstable; urgency=medium ++ ++ * Team upload. ++ * 0001-Fixed-unchecked-typecasts-of-DcmItem-search-results.patch. ++ Patch refreshed. ++ * 0004-Fixed-two-segmentation-faults.patch: unfuzz. ++ * 0007-CVE-2024-47796.patch: new. ++ This patch addresses CVE-2024-47796. (Closes: #1093043) ++ * 0008-CVE-2024-52333.patch: new. ++ This patch addresses CVE-2024-52333. (Closes: #1093047) ++ ++ -- Étienne Mollier Sat, 18 Jan 2025 16:30:29 +0100 ++ ++dcmtk (3.6.8-6) unstable; urgency=medium ++ ++ * d/t/run-unit-test: Fix unit-test for new release. Closes: #1075917 ++ * d/patches: Fixed possible overflows when allocating memory. Closes: #1074483 ++ ++ -- Mathieu Malaterre Mon, 08 Jul 2024 13:31:04 +0200 ++ ++dcmtk (3.6.8-5) unstable; urgency=medium ++ ++ * Upload 3.6.8 to unstable ++ * d/control: Bump Std-Vers to 4.7.0 no changes needed ++ ++ -- Mathieu Malaterre Fri, 05 Jul 2024 11:24:00 +0200 ++ ++dcmtk (3.6.8-4) experimental; urgency=medium ++ ++ * d/rules: Add dcmtk-data package ++ * d/control: Add missing dependency on libjs-jquery. Closes: #989108 ++ * d/control: Reduce number of dependencies for -dev package ++ * New upstream version 3.6.8 ++ ++ -- Mathieu Malaterre Mon, 24 Jun 2024 20:43:54 +0200 ++ ++dcmtk (3.6.7-15) unstable; urgency=medium ++ ++ * Team upload. ++ [ Adrian Bunk ] ++ * Update two of the previously applied patches to avoid breaking the ABI. ++ Closes: #1070207. ++ ++ -- Santiago Vila Mon, 24 Jun 2024 12:30:00 +0200 ++ ++dcmtk (3.6.7-14) unstable; urgency=medium ++ ++ * Team upload. ++ [ Emanuele Rocca ] ++ * Do not drop graphviz from build-depends-indep for armhf and armel. ++ [ Adrian Bunk ] ++ * CVE-2024-28130: Segmentation faults due to incorrect typecast ++ (Closes: #1070207) ++ * CVE-2024-34508: Segmentation fault via invalid DIMSE message ++ * CVE-2024-34509: Segmentation fault via invalid DIMSE message ++ ++ -- Santiago Vila Wed, 05 Jun 2024 14:30:00 +0200 ++ ++dcmtk (3.6.7-13) unstable; urgency=medium ++ ++ * Team upload. ++ * Marked Debian-specific patches as not needing forwarding to ++ upstream. ++ * d/control: add explicit dependency on libnsl-dev. Closes: #1066422. ++ ++ -- Michael R. Crusoe Tue, 19 Mar 2024 15:24:15 +0100 ++ ++dcmtk (3.6.7-12) unstable; urgency=medium ++ ++ * Team upload. ++ ++ [ Emanuele Rocca ] ++ * Do not build-depend on graphviz on armhf and armel. The package is ++ currently not installable on those arches due to the ongoing t64 ++ transition. Closes: #1067147 ++ ++ -- Michael R. Crusoe Tue, 19 Mar 2024 12:30:03 +0100 ++ ++dcmtk (3.6.7-11) unstable; urgency=medium ++ ++ * Fix typo in target distribution during upload. ++ ++ -- Sebastien Jodogne Tue, 19 Mar 2024 11:54:38 +0100 ++ ++dcmtk (3.6.7-10) unreleased; urgency=medium ++ ++ * Fix build on armel. Closes: #1060104 ++ ++ -- Sebastien Jodogne Tue, 19 Mar 2024 11:03:28 +0100 ++ ++dcmtk (3.6.7-9.1) unstable; urgency=medium ++ ++ * Non-maintainer upload. ++ * Rename libraries for 64-bit time_t transition. Closes: #1062022 ++ ++ -- Michael Hudson-Doyle Wed, 28 Feb 2024 01:17:02 +0000 ++ ++dcmtk (3.6.7-9) unstable; urgency=medium ++ ++ * Team upload. ++ * Fix postrm ++ Closes: #1038776 ++ ++ -- Andreas Tille Thu, 22 Jun 2023 09:53:48 +0200 ++ ++dcmtk (3.6.7-8) unstable; urgency=medium ++ ++ * d/patches: Fix CVE-2022-43272. Closes: #1027165 ++ * d/control: Bump Std-Vers to 4.6.2 no changes needed ++ ++ -- Mathieu Malaterre Wed, 04 Jan 2023 11:15:13 +0100 ++ ++dcmtk (3.6.7-7) unstable; urgency=medium ++ ++ [ Andreas Tille ] ++ * Team upload. ++ * Prevent bashism in run-unit-test ++ * Enable running run-unit-test from any directory ++ * Add maintscript to remove outdated conffiles ++ Closes: #990134 ++ * On purge remove /var/lib/dcmtk/db/STORESCP if exists ++ Closes: #990135 ++ ++ [ Mathieu Malaterre ] ++ * d/control: Add missing dependency on libjs-jquery. Closes: #989108 ++ ++ -- Andreas Tille Tue, 06 Dec 2022 11:52:52 +0100 ++ ++dcmtk (3.6.7-6) unstable; urgency=medium ++ ++ [ Mathieu Malaterre ] ++ * Team upload. ++ * d/control: libdcmtk4 is not present in o-o-stable ++ * d/postrm: Fix possible-bashism-in-maintainer-script ++ * d/patches: CVE-2022-2119 CVE-2022-2120. Closes: #1017743 ++ ++ [ Mohammed Bilal ] ++ * Add autopkgtests ++ * Bump Standards-Version to 4.6.1 (no changes needed) ++ ++ -- Mathieu Malaterre Mon, 22 Aug 2022 17:02:26 +0200 ++ ++dcmtk (3.6.7-5) unstable; urgency=medium ++ ++ [ Gregory C. Sharp ] ++ * Change CMAKE_INSTALL_DATADIC to CMAKE_INSTALL_DATADIR in an attempt ++ to fix dictionary load failure ++ ++ -- Andreas Tille Fri, 17 Jun 2022 21:41:44 +0200 ++ ++dcmtk (3.6.7-4) unstable; urgency=medium ++ ++ * Team upload. ++ * Fix install dir of dictionaries ++ Closes: #1012417 ++ ++ -- Andreas Tille Tue, 07 Jun 2022 09:05:06 +0200 ++ ++dcmtk (3.6.7-3) unstable; urgency=medium ++ ++ * Source-only upload ++ * Breaks+Replaces: libdcmtk16 ++ ++ -- Andreas Tille Mon, 06 Jun 2022 19:39:49 +0200 ++ ++dcmtk (3.6.7-2) unstable; urgency=medium ++ ++ * Team upload. ++ * Upstream has bumped SONAME thus rename binary package for shared ++ library ++ Closes: #1010536 ++ ++ -- Andreas Tille Wed, 04 May 2022 09:08:00 +0200 ++ ++dcmtk (3.6.7-1) unstable; urgency=medium ++ ++ * Team upload. ++ * New upstream version ++ Closes: #1010474 ++ * Point watch file to Github ++ * Drop useless get-orig-source target (routine-update) ++ * Remove trailing whitespace in debian/changelog (routine-update) ++ * Remove trailing whitespace in debian/rules (routine-update) ++ * Drop debian/gbp.conf ++ * Install pkgconfig file ++ * Review d/copyright ++ * Drop unneeded lintian-override ++ ++ -- Andreas Tille Tue, 03 May 2022 10:28:02 +0200 ++ ++dcmtk (3.6.6-6) UNRELEASED; urgency=medium ++ ++ * d/dcmtk.postrm: Added check to remove dcmtk user (Closes: #987972) ++ * d/dcmtk.postinst: Change dcmtk user shell to nologin ++ ++ -- Lance Lin Wed, 13 Apr 2022 19:36:57 +0700 ++ ++dcmtk (3.6.6-5) unstable; urgency=medium ++ ++ * d/rules: Re-exposed --interleave-none option. Closes: #1001703 ++ * d/rules: Start using c++17 since default for GCC-11 ++ ++ -- Mathieu Malaterre Thu, 06 Jan 2022 16:33:20 +0100 ++ ++dcmtk (3.6.6-4) unstable; urgency=medium ++ ++ * d/u/metadata: Add publication about DCMTK ++ * d/patches: Add new patch to fix random unit test failures ++ * d/control: Bump Std-Vers to 4.6.0, no changes needed ++ * d/watch: Update to latest uscan version ++ * d/rules: Remove as-needed-linker-flag ++ * d/control: Add missing Rules-Requires-Root: no ++ * d/patches: Import bug-fixes from git/master ++ ++ -- Mathieu Malaterre Wed, 08 Dec 2021 10:27:21 +0100 ++ ++dcmtk (3.6.6-3) unstable; urgency=medium ++ ++ * d/patches: Fix compilation of dicomscope. Closes: #1000220 ++ * d/control: Add myself as Uploader ++ ++ -- Mathieu Malaterre Tue, 23 Nov 2021 08:15:20 +0100 ++ ++dcmtk (3.6.6-2) unstable; urgency=medium ++ ++ * Team upload. ++ * d/patches: Fix unit test suite on big endian machine ++ ++ -- Mathieu Malaterre Thu, 18 Nov 2021 08:44:13 +0100 ++ ++dcmtk (3.6.6-1) unstable; urgency=medium ++ ++ [ Andreas Tille ] ++ * Team upload. ++ * Remove patches thanks to a hint by Jörg Riesmeier (see #981326) ++ * Rename debian/.gitlab-ci.yml to debian/salsa-ci.yml to use a unique ++ name in all Debian Med packages ++ ++ [ Mathieu Malaterre ] ++ * d/rules: Set ICONV to OFF ++ * d/rules: Remove bogus setting of c++11 in d/rules ++ * d/rules: Prefer stdlibc (iconv) setting over ICU. Closes: #988417 ++ * d/rules: Prefer STL over DCMTK convenient copy ++ * d/rules: DCMTK_ENABLE_CHARSET_CONVERSION is an internal variable ++ * d/patches: Properly install dcm2xml.dtd/dumppat.txt. Closes: #993025 ++ ++ -- Mathieu Malaterre Wed, 17 Nov 2021 11:07:39 +0100 ++ ++dcmtk (3.6.6-1~ext1) experimental; urgency=medium ++ ++ * d/ci: delete some generated files ++ * New upstream version 3.6.6 ++ * d/: Update so-version ++ * d/copyright: Add new files with specific copyright ++ ++ -- Gert Wollny Sun, 11 Apr 2021 17:24:39 +0200 ++ ++dcmtk (3.6.5-1) unstable; urgency=medium ++ ++ * debian/control: switch to comat level 10 ++ * d/rules: don't install libcharls.so Closes: #971433 ++ Closes: #971412 ++ * d/control: cme fix dpkg ++ * d/compat: remove obsolete file ++ ++ -- Gert Wollny Tue, 10 Nov 2020 15:08:59 +0100 ++ ++dcmtk (3.6.5-1~exp1) experimental; urgency=medium ++ ++ [ Andreas Tille ] ++ * Remove myself as Uploader ++ ++ [ Gert Wollny ] ++ * New upstream version 3.6.5 ++ * d/p: Update patches and remove 08 (applied upstream) ++ * Update SO version to 15 ++ * d/copyright: all-over year and new files ++ ++ -- Gert Wollny Fri, 20 Dec 2019 21:31:03 +0100 ++ ++dcmtk (3.6.4-2.1) unstable; urgency=medium ++ ++ * Non-maintainer upload. ++ * Revert to convenient charls copy for now. Closes: #923433 ++ ++ -- Mathieu Malaterre Tue, 28 May 2019 21:39:19 +0200 ++ ++dcmtk (3.6.4-2) unstable; urgency=medium ++ ++ * d/rules,d/p/03: Fix DATADIC path, Closes: #913304 ++ ++ -- Gert Wollny Sat, 19 Jan 2019 10:36:10 +0100 ++ ++dcmtk (3.6.4-1) unstable; urgency=medium ++ ++ * d/p/09: Fix build with CharLS 2.0 ++ * Upload to unstable ++ ++ -- Gert Wollny Sat, 12 Jan 2019 16:10:06 +0100 ++ ++dcmtk (3.6.4-1~exp1) experimental; urgency=medium ++ ++ [ Jelmer Vernooij ] ++ * Move source package lintian overrides to debian/source. ++ * Trim trailing whitespace. ++ ++ [ Gert Wollny ] ++ * New upstream version 3.6.4 ++ * d/p: Update patches for new release and remove old patches ++ * d/control: Update lib package name ++ * d/rules: Change dict install directory to new lib name ++ * d/dcmtk.postinst: Disable running chown recursively ++ * d/copyright: Add new libcmr files with non-OFFICE copyright ++ ++ -- Gert Wollny Sun, 23 Dec 2018 10:43:41 +0100 ++ ++dcmtk (3.6.3-1~exp1) experimental; urgency=medium ++ ++ * d/* correct by running 'git fix dpkg' ++ * d/watch: update link (thanks Pedro Fernando Arizpe Gómez) ++ * New upstream version 3.6.3 ++ * d/patches: Update patches to apply to new version ++ * d/ .gitlab-ci.yml: Add this CI file ++ * p/d/03: Set DATDIC in CMakeLists.txt ++ * d/ Update SO version to 13 ++ * d/p/03: Correct install path ++ * d/copyright: Update for added and moved files ++ ++ -- Gert Wollny Sat, 11 Aug 2018 09:35:25 +0200 ++ ++dcmtk (3.6.2-3) unstable; urgency=medium ++ ++ * d/control: Remove Juergen Salk from uploaders, Closes: #846787 ++ * d/p/08: set CANONICAL_HOST_TYPE from cmake, Closes: #859203 ++ * d/p/09: Fix format errors, Closes: #865418 ++ * d/p/10:Add fix for possible string overflow ++ ++ -- Gert Wollny Wed, 06 Sep 2017 10:09:08 +0000 ++ ++dcmtk (3.6.2-2) unstable; urgency=medium ++ ++ * d/rules: install examples in arch-indep build to fix -A build ++ ++ -- Gert Wollny Tue, 22 Aug 2017 12:46:09 +0000 ++ ++dcmtk (3.6.2-1) unstable; urgency=medium ++ ++ * Upload to unstable ++ * d/control: Standards version 4.1.0 (no changes needed) ++ ++ -- Gert Wollny Tue, 22 Aug 2017 10:05:31 +0000 ++ ++dcmtk (3.6.2-1~exp1) experimental; urgency=medium ++ ++ * Update d/watch ++ * New upstream version 3.6.2 Closes: #868867 ++ * d/p/* refresh patches ++ * drop d/p/09_ because it was applied upstream ++ * s/* update SO version ++ * d/copyright: add new files to copyright ++ * d/rules: drop more test programs and add manpage for msgserv ++ * d/rules enable use of C++11 features ++ * d/control: Add build dependency on help2man ++ ++ -- Gert Wollny Wed, 02 Aug 2017 13:48:47 +0000 ++ ++dcmtk (3.6.1~20170228-2) unstable; urgency=medium ++ ++ * d/p/09: Improve numerical stability by rounding the time to ++ the six decimal digits supported by dicom. Closes: #859204 ++ #865452 ++ * d/control: Correct dependency on libssl-dev for libdcmtk-dev ++ * d/control: Update standards version (no action needed) ++ * d/control: cme fix dpkg-control ++ ++ -- Gert Wollny Thu, 22 Jun 2017 07:55:04 +0000 ++ ++dcmtk (3.6.1~20170228-1) unstable; urgency=medium ++ ++ * Upload to unstable Closes: #747167 ++ * d/rules: correctly enabling private tags, Closes: #859201 ++ * d/rules: enable C++11 build ++ ++ -- Gert Wollny Tue, 20 Jun 2017 18:58:39 +0000 ++ ++dcmtk (3.6.1~20170228-1~exp1) experimental; urgency=medium ++ ++ [ Gert Wollny ] ++ * Set dependency to libssl-dev, Closes: #851083 ++ * Update patches to new upstream ++ * d/p/02: correct calls to JpegLsEncode because system CharLS ++ interface of the bundled version differs from Debian version ++ * New upstream version 3.6.1~20170228 ++ * Change to libdcmtk11 because of soname change ++ * Remove d/p/09 patch ++ * d/* Update package names and build rules to new SO-version ++ * d/copyright: mention Frank Vanden Berghen and his AFPL license ++ Thanks for spotting this: Thorsten Alteholz ++ * d/control: update self e-mail address in uploaders ++ * d/copyright: Add copyright information for new files ++ ++ [ Mathieu Malaterre ] ++ * d/control: Remove self from Uploaders ++ ++ -- Gert Wollny Mon, 20 Feb 2017 13:15:40 +0100 ++ ++dcmtk (3.6.1~20160216-2) unstable; urgency=medium ++ ++ * d/p/08: remove SYSTEM_PROCESSOR usage for reproducible builds ++ * d/p/09: add patch to enable compileing against openssl-1.1 ++ Closes: #828281 ++ * d/p/04: update patch to remove duplicate entries ++ * d/rules: add hardening flags ++ * d/control: change conflict with libinsighttoolkit4-dev to breaks ++ ++ -- Gert Wollny Sun, 03 Jul 2016 13:58:34 +0000 ++ ++dcmtk (3.6.1~20160216-1) experimental; urgency=medium ++ ++ [ Gert Wollny ] ++ * New upstream version ++ * d/p/*: rebase patches ++ * d/p/06: Update patch to use ABI version as part of the library name ++ * d/*: Update files to correspond to new soversion 8. ++ Jumping from 5 to 8 because upstream uses 8. ++ * d/copyright: Update copyright information ++ * d/control: update standards version to 3.9.8 ++ * d/control + d/rules: drop dbg package in favour of antomatic ones ++ ++ [ Mattia Rizzolo ] ++ * d/control: Use secure URIs (https) in Vcs-Git. ++ * d/libdcmtk5.dirs: removed as useless. ++ * d/dcmtk.preinst: 'set -e' in the script instead of the shebang, ++ fixes lintian's maintainer-script-without-set-e ++ ++ -- Gert Wollny Sun, 08 May 2016 21:59:06 +0000 ++ ++dcmtk (3.6.1~20150924-5) unstable; urgency=medium ++ ++ * d/libdcmtk-dev revert last change since ITK-4.9 now supports ++ properly the dcmtk*.cmake files. ++ * d/control: conflict with older versions of libinsighttoolkit-dev ++ ++ -- Gert Wollny Sat, 30 Jan 2016 23:11:21 +0100 ++ ++dcmtk (3.6.1~20150924-4) unstable; urgency=medium ++ ++ * Do not install DCMTK*.cmake files, they break things. ++ cmake's FindDCMTK handles this case better without these files. ++ ++ -- Gert Wollny Tue, 05 Jan 2016 21:42:56 +0100 ++ ++dcmtk (3.6.1~20150924-2) unstable; urgency=medium ++ ++ * Update internal use of DCMDICT path Closes: #807691 ++ * Correct Apache-2.0 copyright ++ ++ -- Gert Wollny Fri, 11 Dec 2015 17:42:45 +0100 ++ ++dcmtk (3.6.1~20150924-1) unstable; urgency=medium ++ ++ * New upstream version ++ * Move vcs to git ++ * Remove dcmtk-www, because it is no longer provided by upstream ++ * Because of ABI change rename library package to libdcmtk5 ++ * Add libcharls-dev to libdcmtk-dev dependencies (reason: see below) ++ ++ -- Gert Wollny Tue, 01 Dec 2015 02:46:03 +0100 ++ ++dcmtk (3.6.1~20150629-7) unstable; urgency=medium ++ ++ * d/control: Add more dependencies to libdcmtk-dev, because the ++ cmake based build system creates a cmake use file that pulls in ++ these libraries for linking. ++ ++ -- Gert Wollny Sun, 29 Nov 2015 21:16:37 +0100 ++ ++dcmtk (3.6.1~20150629-6) unstable; urgency=medium ++ ++ * Change Provides:libdcmtk-dev to Provides:libdcmtk2-dev Closes: #805718 ++ ++ -- Gert Wollny Sat, 21 Nov 2015 13:58:54 +0100 ++ ++dcmtk (3.6.1~20150629-5) unstable; urgency=medium ++ ++ * d/control: Add conflict/replace for libdcmtk4-dev ++ ++ -- Gert Wollny Thu, 12 Nov 2015 13:30:12 +0100 ++ ++dcmtk (3.6.1~20150629-4) unstable; urgency=medium ++ ++ * Add patch soversion_abi.patch to change not only the library file ++ name but also in the cmake related files. ++ * Add patch dont_export.. to not export all executables for cmake ++ Closes: #803304 ++ * d/rules: remove code to add abi-suffix to libraries on install ++ * Add Gert Wollny to uploaders ++ ++ -- Gert Wollny Thu, 29 Oct 2015 11:51:54 +0100 ++ ++dcmtk (3.6.1~20150629-3) unstable; urgency=medium ++ ++ * Adapt prerm script for dash ++ Closes: #803008 ++ * small DEP5 fixes ++ ++ -- Andreas Tille Mon, 26 Oct 2015 12:11:22 +0100 ++ ++dcmtk (3.6.1~20150629-2) unstable; urgency=medium ++ ++ * debian/copyright: DEP5 ++ * unversioned -dev package ++ Closes: #800481 ++ * Inform users about non-backward compatible changes in dcmtk database ++ when using dcmqrscp ++ Closes: #799039 ++ * suppress lintian warnings no-symbols-control-file ++ * create empty dir /var/lib/dcmtk/db in package ++ Closes: #801735 ++ ++ -- Andreas Tille Fri, 23 Oct 2015 23:29:57 +0200 ++ ++dcmtk (3.6.1~20150629-1) unstable; urgency=medium ++ ++ * New upstream version ++ * cme fix dpkg-control ++ * libdcmtk4-dev conflicts libdcmtk2-dev ++ Closes: #769151 ++ * Do gcc-5 transition on new version ++ * Conflicts/Replaces: libdcmtk3 ++ Closes: #754583 ++ * Do not hardcode path to invoke-rc.d in maintainer scripts ++ * Fix apache configuration (thanks for the patch to HAYASHI Kentaro ++ ) ++ Closes: #779700 ++ * Apply patch to fix performance problem (thanks for the patch to ++ Sebastien Jodogne ) ++ Closes: #785400) ++ * Enable reproducible build (Thanks for the patch to Maria Valentina Marin ++ ) ++ Closes: #790133 ++ ++ -- Andreas Tille Sun, 13 Sep 2015 20:31:57 +0200 ++ ++dcmtk (3.6.1~20140617-3) experimental; urgency=low ++ ++ * Fix building/running on sparc. ++ * Really remove md5 files from doxygen HTML output ++ ++ -- Mathieu Malaterre Mon, 07 Jul 2014 09:09:49 +0200 ++ ++dcmtk (3.6.1~20140617-2) experimental; urgency=low ++ ++ * Fix SIGSEGV on sparc ++ * Fix removal of md5 files on buildds ++ ++ -- Mathieu Malaterre Tue, 01 Jul 2014 11:15:54 +0200 ++ ++dcmtk (3.6.1~20140617-1) experimental; urgency=low ++ ++ * New snapshot. Use ABI=4 as per upstream ++ * Refreshed patches, removed applied upstream ++ ++ -- Mathieu Malaterre Wed, 18 Jun 2014 08:44:51 +0200 ++ ++dcmtk (3.6.1~20131114-7) experimental; urgency=low ++ ++ * Bump Std-Vers to 3.9.5, no changes needed ++ * Fix failing SCP test. Closes: #740342 ++ ++ -- Mathieu Malaterre Fri, 28 Feb 2014 13:19:20 +0100 ++ ++dcmtk (3.6.1~20131114-6) experimental; urgency=low ++ ++ * Remove non-ASCII char. Closes: #732673 ++ * Fix setuid return value. Closes: #731434 ++ * Update old copyright. Closes: #732672 ++ ++ -- Mathieu Malaterre Thu, 27 Feb 2014 17:33:18 +0100 ++ ++dcmtk (3.6.1~20131114-5) experimental; urgency=low ++ ++ * Increase timeout a little to fix issue on s390x ++ + d/p/timeout.patch ++ ++ -- Mathieu Malaterre Fri, 20 Dec 2013 11:02:48 +0100 ++ ++dcmtk (3.6.1~20131114-4) experimental; urgency=low ++ ++ * Import patch from git (upstream) ++ ++ -- Mathieu Malaterre Thu, 19 Dec 2013 17:33:18 +0100 ++ ++dcmtk (3.6.1~20131114-3) experimental; urgency=low ++ ++ * Another round of compilation fixes. Closes: #731434 ++ * Fix installation. Closes: #731752 ++ * Another attempt at fixing test. Closes: #730582 ++ ++ -- Mathieu Malaterre Tue, 10 Dec 2013 15:15:52 +0100 ++ ++dcmtk (3.6.1~20131114-2) experimental; urgency=low ++ ++ * Fix failing test (ofstd_markup_6). Closes: #730582 ++ * Remove some spelling error in man pages. Closes: #730635 ++ * Remove CMake overriding our compilation flags. Closes: #730636 ++ ++ -- Mathieu Malaterre Thu, 05 Dec 2013 12:50:28 +0100 ++ ++dcmtk (3.6.1~20131114-1) experimental; urgency=low ++ ++ * New snapshot. Closes: #723091, #715039 ++ * Refresh patches ++ ++ -- Mathieu Malaterre Fri, 22 Nov 2013 19:55:25 +0100 ++ ++dcmtk (3.6.1~20121102-5) experimental; urgency=low ++ ++ * Fix jquery.js removal when executing build-indep ++ ++ -- Mathieu Malaterre Wed, 04 Sep 2013 09:08:29 +0200 ++ ++dcmtk (3.6.1~20121102-4) experimental; urgency=low ++ ++ * Fix buffer overflow in StudyInstanceUID. Closes: #715011 ++ * Fix apache 2.4 transition. Closes: #669740 ++ * Fix -doc installation. Closes: #717968 ++ ++ -- Mathieu Malaterre Mon, 02 Sep 2013 11:13:46 +0200 ++ ++dcmtk (3.6.1~20121102-3) experimental; urgency=low ++ ++ * fix lintian warning about jquery.js (doxygen generated) ++ * remove internal tests suite from dcmtk package ++ * cope with cmake and #701231 ++ * Update patch d/p/bug706062.patch. Closes: #706062 ++ * Upgrade for apache 2.4. Closes: #669740 ++ ++ -- Mathieu Malaterre Wed, 19 Jun 2013 13:51:22 +0200 ++ ++dcmtk (3.6.1~20121102-2) experimental; urgency=low ++ ++ * Install *.dic to versioned dir (See #709123) ++ * Add preliminary work to get iconv support ++ ++ -- Mathieu Malaterre Fri, 31 May 2013 17:39:30 +0200 ++ ++dcmtk (3.6.1~20121102-1) experimental; urgency=low ++ ++ * Use new dh syntax ++ * Run w-a-s. Use B-D-I for doxygen ++ * Switch to cmake build system (allows parallel builds). Closes: #701801 ++ * Use system CharLS. Closes: #705923 ++ * Use SOP class uid with option. Closes: #706062 ++ ++ -- Mathieu Malaterre Wed, 15 May 2013 10:34:58 +0200 ++ ++dcmtk (3.6.0-13) unstable; urgency=low ++ ++ * Remove d/README.source, since source-format 3.0 ++ * Update dcmtk-www README for install instructions ++ * Remove obsolete DMUA flag ++ * Bump Std-Vers to 3.9.4, no changes needed ++ * Provide a debug package. Closes: #690733 ++ * Fix SIGSEGV. Closes: #703716 ++ ++ -- Mathieu Malaterre Wed, 15 May 2013 10:10:29 +0200 ++ ++dcmtk (3.6.0-12) unstable; urgency=low ++ ++ [ Andrey Rahmatullin ] ++ * Fix underlinked libraries. Closes: #677721 ++ - debian/patches/underlink.patch ++ ++ -- Mathieu Malaterre Thu, 20 Dec 2012 13:20:45 +0100 ++ ++dcmtk (3.6.0-11) unstable; urgency=low ++ ++ * Fix compilation with gcc 4.7. Closes: #674361 ++ - debian/patches/bug674361.patch ++ * Make sure to link against libxml2. Closes: #510120 ++ * Fix some underlinking. Closes: #674586 ++ - debian/patches/underlink.patch ++ ++ -- Mathieu Malaterre Thu, 31 May 2012 11:31:16 +0200 ++ ++dcmtk (3.6.0-10) unstable; urgency=low ++ ++ [ Andreas Tille ] ++ * debian/dcmtk.prerm: when purging dirs in /var/lib need to be ++ removed in advance. Closes: #660346 ++ ++ [ Mathieu Malaterre ] ++ * Use libpng-dev. Closes: #662296 ++ * Use libtiff-dev for transition to tiff5 ++ * Bump Std-Vers to 3.9.3. No changes needed ++ ++ -- Mathieu Malaterre Tue, 06 Mar 2012 23:01:59 +0100 ++ ++dcmtk (3.6.0-9) unstable; urgency=low ++ ++ * Remove dot wrapper, not required anymore. ++ * Generate doc using svg instead of png to save disk space ++ * Fix compilation. Thanks to Bhavani Shankar. Closes: #646316 ++ * Fix VCS URLs ++ ++ -- Mathieu Malaterre Wed, 23 Nov 2011 16:31:18 +0100 ++ ++dcmtk (3.6.0-8) unstable; urgency=low ++ ++ * Adding a storescp daemon ++ * Remove convenient copy of CharLS. Closes: #631100 ++ ++ -- Mathieu Malaterre Tue, 19 Jul 2011 17:08:19 +0200 ++ ++dcmtk (3.6.0-7) unstable; urgency=low ++ ++ * Add a patch (from current git/master) to fix a regression. Closes: #630781 ++ * Another fix to remove symlink only if exists ++ * Remove deprecated lintian override ++ ++ -- Mathieu Malaterre Fri, 17 Jun 2011 14:43:37 +0200 ++ ++dcmtk (3.6.0-6) unstable; urgency=low ++ ++ * Make sure OFFIS_DCMTK_VERSION_NUMBER is really a number. Closes: #628168 ++ * Update Standard Version to 3.9.2. No changes needed ++ * Fix some lintian errors in control file ++ * Fix piuparts reports on remaining dcmtk apache configuration file ++ ++ -- Mathieu Malaterre Tue, 31 May 2011 23:28:12 +0200 ++ ++dcmtk (3.6.0-5) unstable; urgency=low ++ ++ * Fix invalid dep. to apache with apache2 ++ * Remove explicit `invoke-rc.d dcmqrscp stop` since it makes package ++ un-removable. Let dh_installinit handles it ++ ++ -- Mathieu Malaterre Mon, 28 Mar 2011 15:33:06 +0200 ++ ++dcmtk (3.6.0-4) unstable; urgency=low ++ ++ * new release fixes segfault. Closes: #615977 ++ * Update README. Closes: #618686 ++ * 3.6.0 is already packaged. Closes: #610855 ++ * Update postrm script. Closes: #618688 ++ ++ -- Mathieu Malaterre Thu, 17 Mar 2011 17:32:48 +0100 ++ ++dcmtk (3.6.0-3) unstable; urgency=low ++ ++ * Properly conflict with dcmtk 3.5.4 and libdcmtk2 ++ * Remove reference to issue with UNIX FHS ++ ++ -- Mathieu Malaterre Tue, 08 Mar 2011 17:14:24 +0100 ++ ++dcmtk (3.6.0-2) experimental; urgency=low ++ ++ * Update copyright to reflects 3.6.0 changes ++ * Update dcmtk.NEWS to reflects 3.6.0 news ++ * Minor update to dcmtk.README.Debian for build instructions ++ * Minor cosmetic changes to the patch series ++ ++ -- Mathieu Malaterre Tue, 08 Feb 2011 19:20:13 +0100 ++ ++dcmtk (3.6.0-1) experimental; urgency=low ++ ++ [ Mathieu Malaterre ] ++ * New upstream: 3.6.0 ++ * Update SONAME to 2.0.0 because of change in log4cplus::Logger::addAppender ++ * Fix lintian errors on misc:Depends ++ * Fix lintian errors on init.d script ++ * Add a patch to link wth png/tiff libraries ++ * Update perl path patch ++ * debian/control: Update standards-version to 3.9.1 ++ * Fix new naming convention for this release ++ * Add get-orig-source target in rules file ++ * Fix CHANGES numbering into something more flexible for later revs. ++ * Move *.dic file to the libdcmtk2 package ++ * Switch to dpkg-source 3.0 (quilt) format ++ ++ [ Andreas Tille ] ++ * make sure *.dic file shwo up only in libdcmtk2 package ++ * Add -f to rm statement in clean target ++ ++ -- Andreas Tille Fri, 04 Feb 2011 22:24:40 +0100 ++ ++dcmtk (3.5.4-4) unstable; urgency=low ++ ++ [Andreas Tille] ++ * Group maintenance according to Debian Med group policy ++ * Added myself as Uploader ++ * VCS fields ++ * Standards-Version: 3.8.3 (Added README.source) ++ * debhelper >= 7 ++ * Add passive mode to watch file ++ * make use of dh_install ++ * debian/patches/05_no_www_docs.patch: Just do not install those ++ files we do not need in the docs of the package in the first ++ place instead of removing them later ++ * Removed some lintian warnings ++ * debian/patches/06_old_patches_from_diff_gz.patch: Move changes ++ from diff.gz to quilt patches ++ * Remove unused config files from previous versions according to ++ http://wiki.debian.org/DpkgConffileHandling ++ (The former handling in preinst triggered a lintian error) ++ * debian/dcmtk.NEWS: Reformating according to developers reference ++ 6.3.4. Supplementing changelogs with NEWS.Debian files ++ * debian/{01_buildsystem_changes,01_fix_perl_script_path,02_dcmtk_3.5.4-3}.patch ++ split up patches of former maintainer into maintainable pieces ++ * Build-Depends: graphviz ++ * debian/dot: Hack to enable png:gd graphics in doxygen which was ++ told to be more compact and readable. The hack contains also ++ working code to create SVG, but I failed to patch the HTML files ++ to render SVG files ++ * debian/libdcmtk1.lintian-overrides: we bundle more than ++ one library in this package so the warning is void ++ * debian/rules: Try to make backups of original files in config ++ but failed for two remaining files (no idea why) ++ * Move all files of dcmtk-www to /usr/lib/dcmtk/cgi-bin and ++ provide apache configuration which enable easy access via ++ http://localhost/dcmtk_wlm/ ++ Closes: #553495 ++ ++ [Mathieu Malaterre] ++ * debian/rules would not honor DEB_BUILD_OPTIONS=nostrip, since ++ original Makefiles would hardcode call to `strip` directly ++ instead rely on dh_strip instead and remove direct call to ++ `strip` from Makefiles. ++ Closes: #511668, #436758 ++ ++ -- Andreas Tille Wed, 02 Dec 2009 09:54:56 +0100 ++ ++dcmtk (3.5.4-3) unstable; urgency=low ++ ++ * debian/control: Update standards-version to 3.7.2 ++ * debian/dcmqrscp.init: Add LSB keyword section ++ * dcmnet/apps/{findscu,movescu}.cc: Apply patches in order ++ to fix --add-override-key bug (reported by Mike Miller ++ ) ++ Closes: #429041 ++ * debian/dcmtk.prerm: Stop dcmqrscp/imagectn more sanely ++ * debian/control: Replace ${Source-Version} by ${binary:Version} ++ ++ -- Juergen Salk Sun, 22 Jul 2007 20:41:22 +0200 ++ ++dcmtk (3.5.4-2) unstable; urgency=low ++ ++ * debian/control: Added build dependency on autotools-dev ++ * debian/rules: Modified clean target to put config.{sub,guess} below ./config ++ * dcmdata/libsrc/Makefile.in: Modified distclean target to delete dicom.tmp as well ++ * debian/rules: Fixed installation path for include files ++ * debian/dcmtk.postinst: Fixed add{user,group} options to reveal possible error msgs ++ (reported by Lars Wirzenius ) ++ Closes: #353288 ++ * debian/control: Removed 'Uploaders: field. ++ | From: Pablo Sau ++ | Subject: Re: dcmtk ++ | Date: Thu, 19 Jan 2006 16:41:06 +0100 ++ | To: Juergen Salk ++ | Hi Juergen: ++ | > I am still keeping you as an active co-maintainer for the Debian ++ | > dcmtk packages in the debian/control file. Would you mind, if I ++ | > drop your name from the control file in one of the next releases? ++ | > ++ | Of course, you must do it! ++ | Thanks for your support of dcmtk and best regards. ++ | Pablo ++ ++ -- Juergen Salk Sun, 15 Jan 2006 17:31:38 +0000 ++ ++dcmtk (3.5.4-1) unstable; urgency=low ++ ++ * New upstream release ++ * debian/dcmtk.NEWS: Added ++ * debian/copyright: Updated according to upstream's COPYRIGHT file ++ * debian/control: Unversioned build-dependency on libssl (now uses ++ OPENSSL_VERSION_NUMBER macro) ++ * debian/rules: Incremented SONAME version number (DcmFileFormat::loadFile changed) ++ * debian/rules: Changed dh_installinit --name argument to dcmqrscp ++ * debian/README.debian: Updated to reflect imagectn -> dcmqrscp transition ++ * debian/dcmtk.postinst: Added code for imagectn -> dcmqrscp transition ++ * debian/dcmtk.preinst: Created to handle imagectn -> dcmqrscp transition ++ * debian/dcmtk.postrm: Created to handle imagectn -> dcmqrscp transition ++ * debian/imagectn.init: Replaced by dcmqrscp.init ++ * debian/imagectn.default: Replaced by dcmqrscp.default ++ * debian/dcmtk.postinst: Added code to handle dcmtk user/group creation more sanely ++ * debian/control: Adjusted 'Maintainer:' field ++ * config/Makefile.def: Adjusted datadir and docdir ++ * dcmdata/libsrc/Makefile.in: Fixed bug for dicom.dic installation path ++ * dcmdata/apps/Makefile.in: Adjusted dcm2xml.dtd and dumppat.txt install paths ++ * dcmsr/apps/Makefile.in: Adjusted dsr2xml.xsd install path ++ * dcmwlm/perl/*.p[lh]: Adjusted perl hashbangs in CGI scripts ++ * dcmwlm/perl/prefs.ph: Adjusted cgi_path, html_path and data_path ++ * dcmqrdb/etc/dcmqrscp.cfg: Added UserName/GroupName config parameters ++ * dcmqrdb/etc/dcmqrscp.cfg: Commented out and adjusted example configuration ++ * dcmqrdb/docs/dcmqrcnf.txt: Adjusted UserName/GroupName examples ++ * dcmwlm/wlistdb/OFFIS: Added newline to prevent lintian "zero-bye" warning ++ ++ -- Juergen Salk Tue, 20 Dec 2005 20:29:15 +0000 ++ ++dcmtk (3.5.3-5) unstable; urgency=low ++ ++ * ./dcmsign/libsrc/sicert.cc: Constified d2i_X509 argument to fix build ++ problems with libssl-0.9.8 ++ Closes: #335399 ++ * debian/control: Versioned build-depend on libssl (>= 0.9.8-1) ++ * ./dcmnet/etc/storescp.cfg: Added missing Verification SOP Class ++ ++ -- Juergen Salk Mon, 24 Oct 2005 20:16:56 +0000 ++ ++dcmtk (3.5.3-4) unstable; urgency=low ++ ++ * debian/control: Added dependency on adduser for dcmtk package ++ * debian/control: Update Standards-Version to 3.6.2 ++ * debian/{control,rules}: Renamed libdcmtk0 to libdcmtk0c2 (gcc/g++-4.0 transition) ++ * debian/control: Added Conflicts/Replaces with previous non-c2 version ++ * config/{configure.in,aclocal.m4,include/cfunix.h.in}, ++ ofstd/libsrc/ofthread.cc: Backport HAVE_POINTER_TYPE_PTHREAD_T patch ++ from CVS version to fix build problems with gcc/g++-4.0 ++ ++ -- Juergen Salk Sun, 22 May 2005 22:02:31 +0200 ++ ++dcmtk (3.5.3-3) unstable; urgency=low ++ ++ * debian/rules: Utilized binary-indep target for -doc package ++ (suggested by Marc 'HE' Brockschmidt ) ++ * debian/rules: Introduced {build,install}-{indep,arch} targets ++ * debian/rules: Removed unneeded dh_* calls from binary-arch target ++ * Removed stale debian/*.install files ++ ++ -- Juergen Salk Mon, 25 Apr 2005 20:13:09 +0200 ++ ++dcmtk (3.5.3-2) unstable; urgency=medium ++ ++ * Added imagectn UserName/GroupName security patch ++ * Modified imagectn.cfg to reflect imagectn patch ++ * Modified debian/rules to create imagectn storage area ++ * Updated imagectn/docs/ctnconf.txt ++ * Fixed parser bug in CNF_readConfigLines() ++ (reported by R.M. Rutschmann ) ++ * Added debian/dcmtk.postinst script to create dcmtk system user/group ++ * Added debian/imagectn.init and debian/imagectn.default ++ (suggested by R.M. Rutschmann ) ++ * Updated debian/README.Debian ++ * Removed stale lintian override file ++ * Swapped 'Maintainer:' and 'Uploaders:' field ++ | From: Pablo Sau ++ | Subject: Re: New (inofficial) dcmtk packages available ++ | Date: Thu, 31 Mar 2005 16:44:50 +0200 ++ | > >> Why is Juergen "not official"? ++ | > > Historical reasons. It was Pablo who has filed the ITP for dcmtk ++ | > > initially. That's why we assigned maintainership to him for the ++ | > > first release. ++ | > If I understand Pablo right than he agreed that you will be put ++ | > in the Maintainer field. Pablo, correct me if I'm wrong. ++ | Yes of course,I filed the ITP for dcmtk initially but absolutely all ++ | work has been made by Juergen, so I think he must to be in the ++ | Maintainer field. ++ | Thanks Juergen for your great work and best regards to all of you. ++ ++ -- Juergen Salk Sat, 19 Mar 2005 22:58:21 +0100 ++ ++dcmtk (3.5.3-1) unstable; urgency=low ++ ++ * Initial Release. ++ Closes: #278914 ++ * Adjusted toplevel Makefile and config/Makefile.def.in to fix $DESTDIR problems ++ * Fixed bug in config/configure.in for DCM_DICT_DEFAULT_PATH ++ * Modified dcmdata/libsrc/Makefile.in to adjust dicom.dic install path ++ * Modified dcmdata/apps/Makefile.in to adjust dcm2xml.dtd and dumppat.txt install paths ++ * Modified dcmsr/apps/Makefile.in to adjust dsr2xml.xsd install path ++ * Modified dcmwlm/Makefile.in to prevent wwwapps from being installed in ${bindir}. ++ * Set GENERATE_HTMLHELP = NO in doxygen/htmldocs to avoid index.hh?.gz cruft ++ * Adjusted hashbangs in dcmwlm/perl CGI scripts ++ * Adjusted cgi_path, html_path and data_path in dcmwlm/perl/prefs.ph ++ * Added newline in dcmwlm/wlistdb/OFFIS to prevent lintian "zero-bye" warning ++ ++ -- Juergen Salk Sat, 30 Oct 2004 11:02:48 +0200 diff --cc debian/control index 00000000,00000000..fa8eaed3 new file mode 100644 --- /dev/null +++ b/debian/control @@@ -1,0 -1,0 +1,104 @@@ ++Source: dcmtk ++Maintainer: Debian Med Packaging Team ++Uploaders: Gert Wollny , Mathieu Malaterre ++Section: science ++Priority: optional ++Build-Depends: cmake, ++ debhelper-compat (= 13), ++ dpkg-dev (>= 1.22.5), ++ gettext, ++ help2man, ++ libnsl-dev, ++ libpng-dev, ++ libsndfile1-dev, ++ libssl-dev, ++ libtiff-dev, ++ libwrap0-dev, ++ libxml2-dev, ++ xxd, ++ zlib1g-dev ++Build-Depends-Indep: doxygen, graphviz ++Standards-Version: 4.7.0 ++Vcs-Browser: https://salsa.debian.org/med-team/dcmtk ++Vcs-Git: https://salsa.debian.org/med-team/dcmtk.git ++Homepage: https://dicom.offis.de/dcmtk ++Rules-Requires-Root: no ++ ++Package: dcmtk ++Architecture: any ++Depends: adduser, ${misc:Depends}, ${shlibs:Depends} ++Description: OFFIS DICOM toolkit command line utilities ++ DCMTK includes a collection of libraries and applications for examining, ++ constructing and converting DICOM image files, handling offline media, ++ sending and receiving images over a network connection, as well as ++ demonstrative image storage and worklist servers. ++ . ++ This package contains the DCMTK utility applications. ++ . ++ Note: This version was compiled with libssl support. ++ ++Package: dcmtk-data ++Architecture: all ++Multi-Arch: foreign ++Depends: ${misc:Depends} ++Description: OFFIS DICOM toolkit data files ++ DCMTK includes a collection of libraries and applications for examining, ++ constructing and converting DICOM image files, handling offline media, ++ sending and receiving images over a network connection, as well as ++ demonstrative image storage and worklist servers. ++ . ++ This package contains the DCMTK data files. ++ ++Package: libdcmtk19 ++Architecture: any ++Section: libs ++Depends: dcmtk-data (>= ${source:Version}), ${misc:Depends}, ${shlibs:Depends} ++Multi-Arch: same ++Description: OFFIS DICOM toolkit runtime libraries ++ DCMTK includes a collection of libraries and applications for examining, ++ constructing and converting DICOM image files, handling offline media, ++ sending and receiving images over a network connection, as well as ++ demonstrative image storage and worklist servers. ++ . ++ This package contains the runtime libraries for the DCMTK utility ++ applications. ++ . ++ Note: This version was compiled with libssl support. ++ ++Package: libdcmtk-dev ++Architecture: any ++Section: libdevel ++Depends: libdcmtk19 (= ${binary:Version}), ++ libnsl-dev, ++ libwrap0-dev, ++ libxml2-dev, ++ libz-dev, ++ ${misc:Depends} ++Suggests: dcmtk-doc ++Provides: libdcmtk19-dev ++Description: OFFIS DICOM toolkit development libraries and headers ++ DCMTK includes a collection of libraries and applications for examining, ++ constructing and converting DICOM image files, handling offline media, ++ sending and receiving images over a network connection, as well as ++ demonstrative image storage and worklist servers. ++ . ++ This package contains development libraries and headers for DCMTK. You ++ only need to install this if you are developing programs that use the ++ DCMTK libraries. ++ . ++ Note: This version was compiled with libssl support. ++ ++Package: dcmtk-doc ++Architecture: all ++Section: doc ++Depends: libjs-jquery, ${misc:Depends} ++Suggests: dcmtk, libdcmtk-dev ++Multi-Arch: foreign ++Description: OFFIS DICOM toolkit documentation ++ DCMTK includes a collection of libraries and applications for examining, ++ constructing and converting DICOM image files, handling offline media, ++ sending and receiving images over a network connection, as well as ++ demonstrative image storage and worklist servers. ++ . ++ This package contains the on-line documentation for the DCMTK libraries ++ and utilities in HTML format. diff --cc debian/copyright index 00000000,00000000..4e05b0a9 new file mode 100644 --- /dev/null +++ b/debian/copyright @@@ -1,0 -1,0 +1,566 @@@ ++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ ++Upstream-Name: DCMTK ++Upstream-Contact: DCMTK Team ++Source: https://github.com/commontk/DCMTK ++ ++Files: * ++Copyright: 1994-2019, OFFIS e.V. ++License: OFFISeV ++ ++Files: dcmnet/include/dcmtk/dcmnet/dimse.h ++ dcmnet/include/dcmtk/dcmnet/assoc.h ++ dcmnet/include/dcmtk/dcmnet/dicom.h ++ dcmnet/include/dcmtk/dcmnet/dcompat.h ++ dcmnet/include/dcmtk/dcmnet/diutil.h ++ dcmnet/libsrc/dimstore.cc ++ dcmnet/libsrc/assoc.cc ++ dcmnet/libsrc/dulextra.cc ++ dcmnet/libsrc/dcompat.cc ++ dcmnet/libsrc/diutil.cc ++ dcmnet/libsrc/dimcmd.h ++ dcmnet/libsrc/dimfind.cc ++ dcmnet/libsrc/dimse.cc ++ dcmnet/libsrc/dimcmd.cc ++ dcmnet/libsrc/dimcancl.cc ++ dcmnet/libsrc/dimecho.cc ++ dcmnet/libsrc/dimmove.cc ++Copyright: 1993/1994, OFFIS, Oldenburg University and CERIUM ++License: OFFIS ++ This software and supporting documentation were ++ developed by ++ . ++ Institut OFFIS ++ Bereich Kommunikationssysteme ++ Westerstr. 10-12 ++ 26121 Oldenburg, Germany ++ . ++ Fachbereich Informatik ++ Abteilung Prozessinformatik ++ Carl von Ossietzky Universitaet Oldenburg ++ Ammerlaender Heerstr. 114-118 ++ 26111 Oldenburg, Germany ++ . ++ CERIUM ++ Laboratoire SIM ++ Faculte de Medecine ++ 2 Avenue du Pr. Leon Bernard ++ 35043 Rennes Cedex, France ++ . ++ for CEN/TC251/WG4 as a contribution to the Radiological ++ Society of North America (RSNA) 1993 Digital Imaging and ++ Communications in Medicine (DICOM) Demonstration. ++ . ++ THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER OFFIS, ++ OLDENBURG UNIVERSITY NOR CERIUM MAKE ANY WARRANTY REGARDING ++ THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR ++ FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER ++ DISEASES OR ITS CONFORMITY TO ANY SPECIFICATION. THE ++ ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF THE SOFTWARE ++ IS WITH THE USER. ++ . ++ Copyright of the software and supporting documentation ++ is, unless otherwise stated, jointly owned by OFFIS, ++ Oldenburg University and CERIUM and free access is hereby ++ granted as a license to use this software, copy this ++ software and prepare derivative works based upon this ++ software. However, any distribution of this software ++ source code or supporting documentation or derivative ++ works (source code and supporting documentation) must ++ include the three paragraphs of this copyright notice. ++ ++Files: dcmnet/include/dcmtk/dcmnet/dul.h ++ dcmnet/include/dcmtk/dcmnet/dulstruc.h ++ dcmnet/libsrc/dul.cc ++ dcmnet/libsrc/dulconst.cc ++ dcmnet/libsrc/dulpriv.h ++ dcmnet/libsrc/dulpres.cc ++ dcmnet/libsrc/dulfsm.h ++ dcmnet/libsrc/dulfsm.cc ++ dcmnet/libsrc/dulparse.cc ++Copyright: 1993, 1994 RSNA and Washington University ++ 1994-2021, OFFIS e.V. ++License: RSNA ++ The software and supporting documentation for the Radiological ++ Society of North America (RSNA) 1993, 1994 Digital Imaging and ++ Communications in Medicine (DICOM) Demonstration were developed ++ at the ++ Electronic Radiology Laboratory ++ Mallinckrodt Institute of Radiology ++ Washington University School of Medicine ++ 510 S. Kingshighway Blvd. ++ St. Louis, MO 63110 ++ as part of the 1993 DICOM Central Test Node project for, and ++ under contract with, the Radiological Society of North America. ++ . ++ THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER RSNA NOR ++ WASHINGTON UNIVERSITY MAKE ANY WARRANTY ABOUT THE SOFTWARE, ITS ++ PERFORMANCE, ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR ++ USE, FREEDOM FROM ANY COMPUTER DISEASES OR ITS CONFORMITY TO ANY ++ SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF ++ THE SOFTWARE IS WITH THE USER. ++ . ++ Copyright of the software and supporting documentation is ++ jointly owned by RSNA and Washington University, and free access ++ is hereby granted as a license to use this software, copy this ++ software and prepare derivative works based upon this software. ++ However, any distribution of this software source code or ++ supporting documentation or derivative works (source code and ++ supporting documentation) must include the three paragraphs of ++ the copyright notice. ++ ++Files: dcmjpeg/libijg8/* ++ dcmjpeg/libijg12/* ++ dcmjpeg/libijg16/* ++Copyright: 1991-1998, Thomas G. Lane. ++License: JPEG ++ The authors make NO WARRANTY or representation, either express or implied, ++ with respect to this software, its quality, accuracy, merchantability, or ++ fitness for a particular purpose. This software is provided "AS IS", and you, ++ its user, assume the entire risk as to its quality and accuracy. ++ . ++ Permission is hereby granted to use, copy, modify, and distribute this ++ software (or portions thereof) for any purpose, without fee, subject to these ++ conditions: ++ (1) If any part of the source code for this software is distributed, then this ++ README file must be included, with this copyright and no-warranty notice ++ unaltered; and any additions, deletions, or changes to the original files ++ must be clearly indicated in accompanying documentation. ++ (2) If only executable code is distributed, then the accompanying ++ documentation must state that "this software is based in part on the work of ++ the Independent JPEG Group". ++ (3) Permission for use of this software is granted only if the user accepts ++ full responsibility for any undesirable consequences; the authors accept ++ NO LIABILITY for damages of any kind. ++ . ++ These conditions apply to any software derived from or based on the IJG code, ++ not just to the unmodified library. If you use our work, you ought to ++ acknowledge us. ++ . ++ Permission is NOT granted for the use of any IJG author's name or company name ++ in advertising or publicity relating to this software or products derived from ++ it. This software may be referred to only as "the Independent JPEG Group's ++ software". ++ . ++ We specifically permit and encourage the use of this software as the basis of ++ commercial products, provided that all warranty or liability claims are ++ assumed by the product vendor. ++ ++Files: dcmimage/include/dcmtk/dcmimage/diqtpix.h ++Copyright: 1991 by Jef Poskanzer. ++License: pbmplus ++ Permission to use, copy, modify, and distribute this software and its ++ documentation for any purpose and without fee is hereby granted, provided ++ that the above copyright notice appear in all copies and that both that ++ copyright notice and this permission notice appear in supporting ++ documentation. This software is provided "as is" without express or ++ implied warranty. ++Comment: The code for the interpolatePixel() image scaling algorithm in module ++ dcmimgle has been derived from code written by Jef Poskanzer for the ++ "Extended Portable Bitmap Toolkit" (pbmplus10dec91) ++ ++Files: ofstd/libsrc/ofstd.cc ++Copyright: 2001-2017 OFFIS e.V. ++ 1998 Todd C. Miller ++ 1988 Regents of the University of California ++ 1999 Bob Withers ++License: OFFISeV ++ ++Files: oflog/* ++Copyright: 1999-2009 Contributors to log4cplus project. ++License: BSD-2-clause ++ Redistribution and use in source and binary forms, with or without modifica- ++ tion, are permitted provided that the following conditions are met: ++ . ++ 1. Redistributions of source code must retain the above copyright notice, ++ this list of conditions and the following disclaimer. ++ . ++ 2. Redistributions in binary form must reproduce the above copyright notice, ++ this list of conditions and the following disclaimer in the documentation ++ and/or other materials provided with the distribution. ++ . ++ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, ++ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND ++ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ++ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, ++ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- ++ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS ++ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ++ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++Files: oflog/include/dcmtk/oflog/config/macosx.h ++Copyright: 2003-2010 Christopher R. Bailey ++License: Apache-2.0 ++ ++Files: oflog/include/dcmtk/oflog/windebap.h ++ oflog/libsrc/windebap.cc ++Copyright: 2003-2010 Eduardo Francos, Odalio SARL ++License: Apache-2.0 ++ ++Files: oflog/libsrc/clogger.cc ++ oflog/include/dcmtk/oflog/clogger.h ++Copyright: 2011 Jens Rehsack and Tad E. Smith ++License: Apache-2.0 ++ ++Files: oflog/include/dcmtk/oflog/ntelogap.h ++ oflog/libsrc/ntelogap.cc ++Copyright: 2003-2010 Michael CATANZARITI ++License: Apache-2.0 ++ ++Files: oflog/include/dcmtk/oflog/log4judp.h ++ oflog/libsrc/log4judp.cc ++Copyright: 2012 Siva Chandran P ++License: Apache-2.0 ++ ++Files: config/stdcxx.m4 ++Copyright: 2008 Benjamin Kosnik ++ 2012 Zack Weinberg ++ 2013 Roy Stogner ++ 2014, 2015 Google Inc.; contributed by Alexey Sokolov ++ 2015 Paul Norman ++ 2015 Moritz Klammler ++ 2016 Krzesimir Nowak ++License: stdcxx-m4 ++ Copying and distribution of this file, with or without modification, are ++ permitted in any medium without royalty provided the copyright notice ++ and this notice are preserved. This file is offered as-is, without any ++ warranty. ++ ++Files: oflog/include/dcmtk/oflog/appender.h ++ oflog/include/dcmtk/oflog/config/win32.h ++ oflog/include/dcmtk/oflog/configrt.h ++ oflog/include/dcmtk/oflog/consap.h ++ oflog/include/dcmtk/oflog/fileap.h ++ oflog/include/dcmtk/oflog/fstreams.h ++ oflog/include/dcmtk/oflog/helpers/apndimpl.h ++ oflog/include/dcmtk/oflog/helpers/lloguser.h ++ oflog/include/dcmtk/oflog/helpers/loglog.h ++ oflog/include/dcmtk/oflog/helpers/pointer.h ++ oflog/include/dcmtk/oflog/helpers/property.h ++ oflog/include/dcmtk/oflog/helpers/sleep.h ++ oflog/include/dcmtk/oflog/helpers/sockbuff.h ++ oflog/include/dcmtk/oflog/helpers/socket.h ++ oflog/include/dcmtk/oflog/helpers/strhelp.h ++ oflog/include/dcmtk/oflog/helpers/threadcf.h ++ oflog/include/dcmtk/oflog/helpers/timehelp.h ++ oflog/include/dcmtk/oflog/hierarchy.h ++ oflog/include/dcmtk/oflog/hierlock.h ++ oflog/include/dcmtk/oflog/layout.h ++ oflog/include/dcmtk/oflog/logger.h ++ oflog/include/dcmtk/oflog/loglevel.h ++ oflog/include/dcmtk/oflog/logmacro.h ++ oflog/include/dcmtk/oflog/ndc.h ++ oflog/include/dcmtk/oflog/nullap.h ++ oflog/include/dcmtk/oflog/socketap.h ++ oflog/include/dcmtk/oflog/spi/apndatch.h ++ oflog/include/dcmtk/oflog/spi/factory.h ++ oflog/include/dcmtk/oflog/spi/filter.h ++ oflog/include/dcmtk/oflog/spi/logevent.h ++ oflog/include/dcmtk/oflog/spi/logfact.h ++ oflog/include/dcmtk/oflog/spi/logimpl.h ++ oflog/include/dcmtk/oflog/spi/objreg.h ++ oflog/include/dcmtk/oflog/spi/rootlog.h ++ oflog/include/dcmtk/oflog/streams.h ++ oflog/include/dcmtk/oflog/syslogap.h ++ oflog/include/dcmtk/oflog/thread/impl/thredimp.h ++ oflog/include/dcmtk/oflog/thread/threads.h ++ oflog/include/dcmtk/oflog/tstring.h ++ oflog/libsrc/apndimpl.cc ++ oflog/libsrc/appender.cc ++ oflog/libsrc/config.cc ++ oflog/libsrc/consap.cc ++ oflog/libsrc/factory.cc ++ oflog/libsrc/fileap.cc ++ oflog/libsrc/filter.cc ++ oflog/libsrc/globinit.cc ++ oflog/libsrc/hierarchy.cc ++ oflog/libsrc/hierlock.cc ++ oflog/libsrc/layout.cc ++ oflog/libsrc/lloguser.cc ++ oflog/libsrc/logevent.cc ++ oflog/libsrc/logger.cc ++ oflog/libsrc/logimpl.cc ++ oflog/libsrc/loglevel.cc ++ oflog/libsrc/loglog.cc ++ oflog/libsrc/ndc.cc ++ oflog/libsrc/nullap.cc ++ oflog/libsrc/objreg.cc ++ oflog/libsrc/patlay.cc ++ oflog/libsrc/pointer.cc ++ oflog/libsrc/property.cc ++ oflog/libsrc/rootlog.cc ++ oflog/libsrc/sleep.cc ++ oflog/libsrc/sockbuff.cc ++ oflog/libsrc/socket.cc ++ oflog/libsrc/socketap.cc ++ oflog/libsrc/strhelp.cc ++ oflog/libsrc/syslogap.cc ++ oflog/libsrc/threads.cc ++ oflog/libsrc/timehelp.cc ++ oflog/libsrc/unixsock.cc ++ oflog/libsrc/winsock.cc ++Copyright: 2001-2010 Tad E. Smith ++License: Apache-2.0 ++ ++Files: oflog/include/dcmtk/oflog/tracelog.h ++ oflog/libsrc/logmacro.cc ++Copyright: 2010 Vaclav Haisman ++License: Apache-2.0 ++ ++Files: dcmjpls/libcharls/* ++Copyright: 2007-2010, Jan de Vaan ++License: BSD-3-clause ++ ++Files: ofstd/tests/tstring.cc ++Copyright: 1997-2011, OFFIS e.V. ++ 1994 Free Software Foundation ++License: GPL-2.0+ ++ All rights reserved. See COPYRIGHT file for details. ++ . ++ This software and supporting documentation were developed by ++ . ++ OFFIS e.V. ++ R&D Division Health ++ Escherweg 2 ++ D-26121 Oldenburg, Germany ++ . ++ This file is part of the GNU ANSI C++ Library. This library is free ++ software; you can redistribute it and/or modify it under the terms of ++ the GNU General Public License as published by the Free Software ++ Foundation; either version 2, or (at your option) any later version. ++ . ++ This library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ . ++ You should have received a copy of the GNU General Public License ++ along with this library; see the file COPYING, if not, see ++ . ++ . ++ On Debian systems, the complete text of the GNU General Public License ++ version 2 can be found in "/usr/share/common-licenses/GPL-2". ++ ++Files: debian/* ++Copyright: 2005-2011 Juergen Salk on ++ 2011-2014 Mathieu Malaterre ++ 2014-2015 Andreas Tille ++ 2015-2018 Gert Wollny ++License: BSD-3-clause ++ ++Files: ofstd/include/dcmtk/ofstd/ofxml.h ++ ofstd/libsrc/ofxml.cc ++Copyright: 2002, Frank Vanden Berghen ++License: dcmtk-or-AFPL ++ The following license terms apply to projects that are in some way related to ++ the "DCMTK project", including applications ++ using "DCMTK project" and tools developed ++ for enhancing "DCMTK project". All other projects ++ (not related to "DCMTK project") have to use this ++ code under the Aladdin Free Public License (AFPL) ++ See the file "AFPL-license.txt" for more information about the AFPL license. ++ (see http://www.artifex.com/downloads/doc/Public.htm for detailed AFPL terms) ++ . ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions are met: ++ * Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ * Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in the ++ documentation and/or other materials provided with the distribution. ++ * Neither the name of Frank Vanden Berghen nor the ++ names of its contributors may be used to endorse or promote products ++ derived from this software without specific prior written permission. ++ THIS SOFTWARE IS PROVIDED BY Frank Vanden Berghen ``AS IS'' AND ANY ++ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++ DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY ++ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++Files: dcmrt/* ++Copyright: 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany ++ 2013-2021, J. Riesmeier, Oldenburg, Germany ++License: BSD-3-clause-Riesmeier ++ ++Files: dcmsr/include/dcmtk/dcmsr/dsrdncsr.h ++ dcmsr/include/dcmtk/dcmsr/dsrsaecc.h ++ dcmsr/libsrc/dsrdncsr.cc ++ dcmsr/libsrc/dsrsaecc.cc ++ dcmsr/include/dcmtk/dcmsr/cmr/tid1419m.h ++ dcmsr/include/dcmtk/dcmsr/cmr/tid1501.h ++ dcmsr/include/dcmtk/dcmsr/cmr/tid15def.h ++ dcmsr/include/dcmtk/dcmsr/cmr/tid300.h ++ dcmsr/include/dcmtk/dcmsr/dsrdnflt.h ++ dcmsr/include/dcmtk/dcmsr/dsritcsr.h ++ dcmsr/include/dcmtk/dcmsr/dsrprdcc.h ++ dcmsr/include/dcmtk/dcmsr/dsrpficc.h ++ dcmsr/libsrc/dsrpficc.cc ++ dcmsr/libsrc/dsrplicc.cc ++ dcmsr/libcmr/tid1419m.cc ++ dcmsr/libcmr/tid1501.cc ++ dcmsr/libcmr/tid15def.cc ++ dcmsr/libsrc/dsrdnflt.cc ++ dcmsr/libsrc/dsritcsr.cc ++ dcmsr/libsrc/dsrprdcc.cc ++Copyright: 2016-2021, J. Riesmeier, Oldenburg, Germany ++License: OFFISeV ++ ++Files: dcmect/include/dcmtk/dcmect/def.h ++ dcmect/include/dcmtk/dcmect/enhanced_ct.h ++ dcmect/include/dcmtk/dcmect/types.h ++ dcmect/libsrc/enhanced_ct.cc ++ dcmect/libsrc/types.cc ++Copyright: 2019 Open Connections GmbH ++License: OFFISeV ++ ++Files: dcmrt/include/dcmtk/dcmrt/drttypes.h ++ dcmrt/libsrc/drttypes.cc ++ dcmrt/libsrc/drtbvcps.cc ++ dcmrt/libsrc/drtmas.cc ++Copyright: 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany ++ 2013-2019, J. Riesmeier, Oldenburg, Germany ++License: BSD-3-clause-Riesmeier ++ ++ ++Files: dcmrt/include/dcmtk/dcmrt/drmdose.h ++ dcmrt/include/dcmtk/dcmrt/drmsrch.h ++ dcmrt/include/dcmtk/dcmrt/drmstrct.h ++ dcmrt/include/dcmtk/dcmrt/drmplan.h ++ dcmrt/libsrc/drmimage.cc ++ dcmrt/libsrc/drmplan.cc ++ dcmrt/libsrc/drmstrct.cc ++ dcmrt/tests/tsearch.cc ++Copyright: 2012, OFFIS e.V. ++License: OFFISeV ++ ++Files: dcmrt/libsrc/drmdose.cc ++Copyright: 2012-2015, OFFIS e.V. ++License: OFFISeV ++ ++Files: dcmrt/include/dcmtk/dcmrt/drmimage.h ++ dcmrt/tests/tests.cc ++Copyright: 2012-2016, OFFIS e.V. ++License: OFFISeV ++ ++Files: dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h ++ dcmfg/include/dcmtk/dcmfg/fgpixeltransform.h ++ dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h ++ dcmfg/libsrc/fgframeanatomy.cc ++ dcmfg/libsrc/fgpixeltransform.cc ++ dcmfg/libsrc/fgparametricmapframetype.cc ++ dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h ++ dcmiod/include/dcmtk/dcmiod/iodreferences.h ++ dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h ++ dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h ++ dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h ++ dcmiod/libsrc/iodcontentitemmacro.cc ++ dcmiod/libsrc/iodreferences.cc ++ dcmiod/libsrc/modfloatingpointimagepixel.cc ++ dcmiod/libsrc/modimagepixelbase.cc ++ dcmdata/tests/tnewdcme.cc ++Copyright: Copyright (C) 2017, Open Connections GmbH ++License: OFFISeV ++ ++License: Apache-2.0 ++ Licensed under the Apache License, Version 2.0 (the "License"); ++ you may not use this file except in compliance with the License. ++ You may obtain a copy of the License at ++ . ++ http://www.apache.org/licenses/LICENSE-2.0 ++ . ++ Unless required by applicable law or agreed to in writing, software ++ distributed under the License is distributed on an "AS IS" BASIS, ++ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ See the License for the specific language governing permissions and ++ limitations under the License. ++ . ++ On Debian GNU/Linux systems you can find this license under ++ /usr/share/common-licenses/Apache-2.0 ++ ++License: BSD-3-clause ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions ++ are met: ++ 1. Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ 2. Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in the ++ documentation and/or other materials provided with the distribution. ++ 3. The name of the author may not be used to endorse or promote products ++ derived from this software without specific prior written permission. ++ * ++ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, ++ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY ++ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ++ THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ++ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ++ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ++ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ++ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++License: BSD-3-clause-Riesmeier ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions are met: ++ . ++ * Redistributions of source code must retain the above copyright notice, ++ this list of conditions and the following disclaimer. ++ . ++ * Redistributions in binary form must reproduce the above copyright notice, ++ this list of conditions and the following disclaimer in the documentation ++ and/or other materials provided with the distribution. ++ . ++ * Neither the name of the copyright holders nor the names of its ++ contributors may be used to endorse or promote products derived from this ++ software without specific prior written permission. ++ . ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ++ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE ++ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ++ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ++ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ++ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ++ POSSIBILITY OF SUCH DAMAGE. ++ ++License: OFFISeV ++ This software and supporting documentation were developed by ++ . ++ OFFIS e.V. ++ R&D Division Health ++ Escherweg 2 ++ 26121 Oldenburg, Germany ++ . ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions ++ are met: ++ - Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ - Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in the ++ documentation and/or other materials provided with the distribution. ++ - Neither the name of OFFIS nor the names of its contributors may be ++ used to endorse or promote products derived from this software ++ without specific prior written permission. ++ . ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --cc debian/dcmqrscp.default index 00000000,00000000..03a66998 new file mode 100644 --- /dev/null +++ b/debian/dcmqrscp.default @@@ -1,0 -1,0 +1,3 @@@ ++# Run dcmqrscp at startup ? ++DCMQRSCP_ENABLE=No ++ diff --cc debian/dcmqrscp.init index 00000000,00000000..c7a08164 new file mode 100644 --- /dev/null +++ b/debian/dcmqrscp.init @@@ -1,0 -1,0 +1,89 @@@ ++#! /bin/sh ++# ++# Start script for dcmqrscp from dcmtk-package ++# Adapted from skeleton ++# @(#)skeleton 2.85-23 28-Jul-2004 miquels@cistron.nl ++# by Roland Marcus Rutschmann ++# and Juergen Salk ++# Version 0.2 Sun, 22 Jul 2007 21:32:42 +0200 ++### BEGIN INIT INFO ++# Provides: dcmqrscp ++# Required-Start: $network $local_fs $remote_fs ++# Required-Stop: $network $local_fs $remote_fs ++# Default-Start: 2 3 4 5 ++# Default-Stop: 0 1 6 ++# Short-Description: Init-Script for DCMTK Central Test Node dcmqrscp ++### END INIT INFO ++ ++ ++set -e ++ ++PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin ++DESC="DCMTK Central Test Node" ++NAME=dcmqrscp ++DAEMON=/usr/bin/$NAME ++PIDFILE=/var/run/$NAME.pid ++SCRIPTNAME=/etc/init.d/$NAME ++DCMQRSCP_CFG="/etc/dcmtk/dcmqrscp.cfg" ++ ++# Gracefully exit if the package has been removed. ++test -x $DAEMON || exit 0 ++ ++# Read config file if it is present. ++if [ -r /etc/default/$NAME ] ++then ++ . /etc/default/$NAME ++fi ++ ++case "$DCMQRSCP_ENABLE" in ++ [Nn]*) ++ exit 0 ++ ;; ++esac ++ ++ ++# ++# Function that starts the daemon/service. ++# ++d_start() { ++ start-stop-daemon --start --quiet --background \ ++ --make-pidfile --pidfile $PIDFILE \ ++ --exec $DAEMON -- +ac -c $DCMQRSCP_CFG ++} ++ ++# ++# Function that stops the daemon/service. ++# ++d_stop() { ++ start-stop-daemon --stop --quiet --pidfile $PIDFILE \ ++ --name $NAME ++} ++ ++case "$1" in ++ start) ++ echo -n "Starting $DESC: $NAME" ++ d_start ++ echo "." ++ ;; ++ stop) ++ echo -n "Stopping $DESC: $NAME" ++ d_stop ++ echo "." ++ ;; ++ reload) ++ exit 0 ++ ;; ++ restart|force-reload) ++ echo -n "Restarting $DESC: $NAME" ++ d_stop ++ sleep 1 ++ d_start ++ echo "." ++ ;; ++ *) ++ echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 ++ exit 1 ++ ;; ++esac ++ ++exit 0 diff --cc debian/dcmtk-data.install index 00000000,00000000..7045a559 new file mode 100644 --- /dev/null +++ b/debian/dcmtk-data.install @@@ -1,0 -1,0 +1,3 @@@ ++usr/share/dcmtk/*.dic ++usr/share/dcmtk/csmapper/ ++usr/share/dcmtk/esdb/ diff --cc debian/dcmtk-doc.doc-base index 00000000,00000000..fa774a4b new file mode 100644 --- /dev/null +++ b/debian/dcmtk-doc.doc-base @@@ -1,0 -1,0 +1,12 @@@ ++Document: dcmtk-doc ++Title: Documentation of DCMTK ++Author: OFFIS DICOM Team ++Abstract: This manual comprises the complete on-line documentation for the ++ DICOM ToolKit (DCMTK) packages. It covers the end user applications as well ++ as the development library interfaces including a wide variety of coding ++ examples. ++Section: Science/Medicine ++ ++Format: HTML ++Index: /usr/share/doc/dcmtk/dcmtk-3.6.9/html/index.html ++Files: /usr/share/doc/dcmtk/dcmtk-3.6.9/html/* diff --cc debian/dcmtk-doc.docs index 00000000,00000000..9c1434e7 new file mode 100644 --- /dev/null +++ b/debian/dcmtk-doc.docs @@@ -1,0 -1,0 +1,1 @@@ ++usr/share/doc/dcmtk-*/ diff --cc debian/dcmtk.README.Debian index 00000000,00000000..cfb3e384 new file mode 100644 --- /dev/null +++ b/debian/dcmtk.README.Debian @@@ -1,0 -1,0 +1,150 @@@ ++DCMTK - The OFFIS DICOM ToolKit for Debian ++========================================== ++ ++General notes: ++ ++DCMTK is a collection of libraries and applications implementing large ++parts the DICOM standard. It includes software for examining, ++constructing and converting DICOM image files, handling offline media, ++sending and receiving images over a network connection, as well as ++demonstrative image storage and worklist servers. DCMTK is written ++in a mixture of ANSI C and C++. It comes in complete source code and ++is made available as "open source" software under BSD like license ++terms. For additional information about DCMTK have a look at the ++OFFIS web page: ++ ++ http://dicom.offis.de/dcmtk.php.en ++ ++DCMTK has been used at numerous DICOM demonstrations to provide ++central, vendor-independent image storage and worklist servers (CTNs - ++Central Test Nodes). It is used by hospitals and companies all over ++the world for a wide variety of purposes ranging from being a tool for ++product testing to being a building block for research projects, ++prototypes and commercial products. ++ ++DCMTK optionally supports some of the DICOM security extensions and ++relies on the free OpenSSL toolkit for the underlying cryptographic ++routines and the TLS protocol implementation. The Debian DCMTK package ++has been built with OpenSSL support enabled. ++ ++More information about using the DCMTK network applications for secure ++DICOM communication can be found in ++ ++ /usr/share/docs/dcmtk/ciphers.txt ++ /usr/share/docs/dcmtk/randseed.txt ++ ++DCMTK optionally supports Wietse Venema's TCP wrappers library ++(libwrap) which is freely available for most Unix platforms and part ++of the default installation of most recent Linux distributions. This ++library allows one to enforce host-based access control via the ++"/etc/hosts_deny" and "/etc/hosts_allow" configuration files. The ++Debian DCMTK package has been compiled with TCP wrapper support ++enabled. See hosts_access(5) man page for details. ++ ++You can use the dcmnet applications for testing DICOM connectivity. A ++brief description can be found in ++ ++ /usr/share/docs/dcmtk/testing.txt ++ ++ ++The DCMTK dcmqrscp application implements a DICOM image ++storage/query/retrieve SCP which has been designed primarily as an ++independent framework for cooperative tests and demonstrations of ++DICOM connectivity by medical imaging vendors. If you want to set up ++dcmqrdb as a DICOM image storage server please read both the dcmqrscp ++manual pages and the supplemental documentation in ++ ++ /usr/share/doc/dcmtk/dcmqrcnf.txt ++ /usr/share/doc/dcmtk/dcmqrset.txt ++ ++The dcmqrscp application can be invoked as a daemon process at boot ++time by setting DCMQRSCP_ENABLE=Yes in /etc/defaults/dcmqrscp. You will ++have to adjust the system wide configuration file ++/etc/dcmtk/dcmqrscp.cfg to suit your needs. This configuration file ++provides optional UserName/GroupName keywords in the "Global ++Parameter" section (see note in dcmqrcnf.txt). Running dcmqrscp with ++root privileges is strongly discouraged. A dedicated system ++user/group dcmtk/dcmtk is automatically added during the installation ++of the Debian DCMTK package. It is important to note that dcmqrscp is ++primarily intended to be used as a demonstration server rather than a ++real "PACS replacement". Scalability is quite limited, both in terms ++of number of images/studies and in number of parallel clients. If you ++want to set up a real large database, you might be better off in using ++an SQL based archive (such as the Mallinckrodt CTN). ++ ++ ++DCMTK supports the Modality Worklist Management SOP Class as a SCP, which ++allows modalities to query and retrieve worklist information from hospital ++information systems. An example worklist database along with a set of ++example queries can be found in ++ ++ /usr/share/doc/dcmtk/examples/wlistdb ++ ++and ++ ++ /usr/share/doc/dcmtk/examples/wlistqry. ++ ++Here is a brief instruction about how to make this work (based on a post ++of Thomas Wilkens in comp.protocols.dicom): ++ ++1. Use dump2dcm to convert all "*.dump" files in examples/wlistdb/OFFIS ++to "*.wl" files (DICOM format): ++ ++ $ for f in *.dump; do dump2dcm "$f" "${f%.dump}".wl; done ++ ++Note that these files have to have the extension "*.wl", otherwise wlmscpfs ++will not find these files. These files represent your worklist database. ++2. Use dump2dcm to convert all "*.dump" files in examples/wlistqry to ++"*.dcm" files (DICOM format): ++ ++ $ for f in *.dump; do dump2dcm "$f" "${f%.dump}".dcm; done ++ ++These files represent possible queries that can be used to query the worklist ++database. ++3. In one shell run the following command to start the worklist management SCP: ++ ++ $ wlmscpfs -v -dfp examples/wlistdb 1234 ++ ++4. In another shell run the following command to send a certain query to the ++WLM SCP: ++ ++ $ findscu -v --call OFFIS localhost 1234 examples/wlistqry/wlistqry0.dcm ++ ++Step 3 will start the worklist management SCP which will listen on port 1234 ++for incoming C-FIND RQ messages. The "-dfp examples/wlistdb" option ++specifies that the worklist database can be found in folder "examples/wlistdb". ++Note that the worklist database can be organized in different storage areas. ++Subfolder "OFFIS" below "examples/wlistdb" is one (the only one in this case) ++storage area. In an incoming C-FIND RQ, an SCU has to tell wlmscpfs which ++storage area shall be queried; this is done by sending a certain "called AE title" ++to wlmscpfs. ++ ++Step 4 will send the query in file "examples/wlistqry/wlistqry0.dcm" ++using a C-FIND-RQ message to the wlmscpfs application (which is running on ++"localhost" and listening on port "1234"). Option "--call OFFIS" specifies ++that the called AE title is "OFFIS" which in turn tells the wlmscpfs ++application to query the storage area "OFFIS" in its worklist database. ++ ++The two programs should then dump information that shows their internal ++processings (C-FIND RQ - C-FIND RSP). You can also use a different query ++file in folder "examples/wlistqry" for querying the worklist database. ++ ++As the wlmscpfs is not a hospital information system, worklist entries ++must be created, updated and deleted manually. The Debian dcmtk-www ++package contains a cgi-based WWW server application which provides an easy ++to use web interface for managing worklist entries from any workstation ++in the network. More information about the DCMTK worklist web interface can ++be found in ++ ++ /usr/share/doc/dcmtk-www/wwwapp.txt ++ ++ ++For more information please visit the DCMTK homepage and the user forum at ++ ++ http://dicom.offis.de/dcmtk.php.en ++ ++and ++ ++ http://forum.dcmtk.org/ ++ ++ -- Mathieu Malaterre Fri, 21 Mar 2025 12:42:50 +0100 diff --cc debian/dcmtk.dirs index 00000000,00000000..716b8d83 new file mode 100644 --- /dev/null +++ b/debian/dcmtk.dirs @@@ -1,0 -1,0 +1,1 @@@ ++/var/lib/dcmtk/db diff --cc debian/dcmtk.docs index 00000000,00000000..45b05038 new file mode 100644 --- /dev/null +++ b/debian/dcmtk.docs @@@ -1,0 -1,0 +1,2 @@@ ++FAQ ++README diff --cc debian/dcmtk.examples index 00000000,00000000..25315700 new file mode 100644 --- /dev/null +++ b/debian/dcmtk.examples @@@ -1,0 -1,0 +1,2 @@@ ++usr/share/dcmtk/wlistdb ++usr/share/dcmtk/wlistqry diff --cc debian/dcmtk.install index 00000000,00000000..3867465e new file mode 100644 --- /dev/null +++ b/debian/dcmtk.install @@@ -1,0 -1,0 +1,8 @@@ ++etc/dcmtk/* ++usr/bin/* ++usr/share/dcmtk/*.css ++usr/share/dcmtk/*.dump ++usr/share/dcmtk/*.lut ++usr/share/dcmtk/dcm2xml.dtd ++usr/share/dcmtk/dsr2xml.xsd ++usr/share/dcmtk/dumppat.txt diff --cc debian/dcmtk.maintscript index 00000000,00000000..f3ed6f5a new file mode 100644 --- /dev/null +++ b/debian/dcmtk.maintscript @@@ -1,0 -1,0 +1,4 @@@ ++rm_conffile /etc/default/dcmqrscp ++rm_conffile /etc/default/storescp ++rm_conffile /etc/init.d/dcmqrscp ++rm_conffile /etc/init.d/storescp diff --cc debian/dcmtk.manpages index 00000000,00000000..5ed5bcf0 new file mode 100644 --- /dev/null +++ b/debian/dcmtk.manpages @@@ -1,0 -1,0 +1,1 @@@ ++usr/share/man/man1/*.1 diff --cc debian/dcmtk.postinst index 00000000,00000000..525636d9 new file mode 100644 --- /dev/null +++ b/debian/dcmtk.postinst @@@ -1,0 -1,0 +1,69 @@@ ++#!/bin/sh ++ ++set -e ++ ++# Create dcmtk user and group ++ ++if ! getent passwd dcmtk >/dev/null 2>&1; then ++ if ! getent group dcmtk > /dev/null 2>&1; then ++ echo "Adding \`dcmtk' group to system ..." ++ addgroup --quiet --system dcmtk || true ++ fi ++ echo "Adding \`dcmtk' user to system ..." ++ adduser --quiet --system --ingroup dcmtk --home /var/lib/dcmtk/db \ ++ --shell /usr/sbin/nologin dcmtk || true ++fi ++ ++# work around possible adduser bug, see #119366 ++[ -d /var/lib/dcmtk/db ] || mkdir -p /var/lib/dcmtk/db ++chmod 755 /var/lib/dcmtk/db ++chown -h dcmtk:dcmtk /var/lib/dcmtk/db || true ++ ++ ++# Handle imagectn -> dcmqrdb transition in (3.5.3 -> 3.5.4) ++ ++ ++LASTVERSION=3.5.3-5 ++ ++case "$1" in ++configure) ++ if dpkg --compare-versions "$2" le "$LASTVERSION"; then ++ ++ if [ -e "/etc/dcmtk/imagectn.cfg" ]; then ++ echo ++ echo "Configuration file /etc/dcmtk/imagectn.cfg has been modified by user." ++ echo "This file will be renamed to /etc/dcmtk/dcmqrscp.cfg." ++ echo "The package default version can be found in /etc/dcmtk/dcmqrscp.cfg.dpkg-new." ++ echo ++ mv -f /etc/dcmtk/dcmqrscp.cfg /etc/dcmtk/dcmqrscp.cfg.dpkg-new ++ mv -f /etc/dcmtk/imagectn.cfg /etc/dcmtk/dcmqrscp.cfg ++ fi ++ ++ if [ -e "/etc/default/imagectn" ]; then ++ echo "Configuration file /etc/default/imagectn has been modified by user." ++ echo "This file will be converted to and replaced by /etc/default/dcmqrscp." ++ echo "The user's old version can be found in /etc/default/imagectn.dpkg-old." ++ echo "The package default version can be found in /etc/default/dcmqrscp.dpkg-new." ++ echo ++ mv -f /etc/default/imagectn /etc/default/imagectn.dpkg-old ++ mv -f /etc/default/dcmqrscp /etc/default/dcmqrscp.dpkg-new ++ sed -e 's/IMAGECTN_ENABLE/DCMQRSCP_ENABLE/g' -e 's/imagectn/dcmqrscp/g' \ ++ /etc/default/dcmqrscp ++ fi ++ ++ if [ -e "/etc/init.d/imagectn" ]; then ++ echo "Configuration file /etc/init.d/imagectn has been modified by user." ++ echo "This file will be replaced by /etc/init.d/dcmqrscp." ++ echo "The user's old version can be found in /etc/init.d/imagectn.dpkg-old" ++ echo ++ mv -f /etc/init.d/imagectn /etc/init.d/imagectn.dpkg-old ++ fi ++ # Remove (dangling) symlinks in /etc/rcN.d ++ update-rc.d imagectn remove >/dev/null ++ fi ++esac ++ ++ ++ ++#DEBHELPER# ++ diff --cc debian/dcmtk.postrm index 00000000,00000000..b8efc7e4 new file mode 100644 --- /dev/null +++ b/debian/dcmtk.postrm @@@ -1,0 -1,0 +1,29 @@@ ++#!/bin/sh ++ ++set -e ++ ++# Remove possible leftovers of imagectn -> dcmqrscp transition ++ ++if [ "$1" = "purge" ] ; then ++ ++ if [ -e /etc/default/imagectn.dpkg-old ]; then ++ rm -f /etc/default/imagectn.dpkg-old ++ fi ++ ++ if [ -e /etc/init.d/imagectn.dpkg-old ]; then ++ rm -f /etc/init.d/imagectn.dpkg-old ++ fi ++ ++ if [ -d /var/lib/dcmtk/db/STORESCP ]; then ++ rm -rf /var/lib/dcmtk/db/STORESCP ++ fi ++fi ++ ++# Remove dcmtk user/group if they exist on cleanup ++if id -u "dcmtk" > /dev/null 2>&1; then ++ echo "Removing \`dcmtk' user and group from the system..." ++ userdel dcmtk ++fi ++ ++#DEBHELPER# ++ diff --cc debian/dcmtk.preinst index 00000000,00000000..9f84376f new file mode 100644 --- /dev/null +++ b/debian/dcmtk.preinst @@@ -1,0 -1,0 +1,40 @@@ ++#!/bin/sh ++ ++set -e ++ ++# Prepare to handle imagectn -> dcmqrdb (3.5.3 -> 3.5.4) transition ++# without triggering a dpkg question ++# # Adapted from http://wiki.debian.org/DpkgConffileHandling ++ ++PKGNAME=dcmtk ++ ++# Remove a no-longer used conffile ++rm_conffile() { ++ CONFFILE="$1" ++ if [ -e "$CONFFILE" ]; then ++ md5sum="`md5sum \"$CONFFILE\" | sed -e \"s/ .*//\"`" ++ old_md5sum="`dpkg-query -W -f='${Conffiles}' $PKGNAME | sed -n -e \"\\\\' $CONFFILE '{s/ obsolete$//;s/.* //p}\"`" ++ if [ "$md5sum" != "$old_md5sum" ]; then ++ echo "Obsolete conffile $CONFFILE has been modified by you." ++ echo "Saving as $CONFFILE.dpkg-bak ..." ++ mv -f "$CONFFILE" "$CONFFILE".dpkg-bak ++ else ++ echo "Removing obsolete conffile $CONFFILE ..." ++ rm -f "$CONFFILE" ++ fi ++ fi ++} ++ ++LASTVERSION=3.5.3-5 ++ ++case "$1" in ++install|upgrade) ++ if dpkg --compare-versions "$2" le "$LASTVERSION"; then ++ rm_conffile "/etc/dcmtk/imagectn.cfg" ++ rm_conffile "/etc/default/imagectn" ++ rm_conffile "/etc/init.d/imagectn" ++ fi ++esac ++ ++#DEBHELPER# ++ diff --cc debian/dcmtk.prerm index 00000000,00000000..15e7e018 new file mode 100644 --- /dev/null +++ b/debian/dcmtk.prerm @@@ -1,0 -1,0 +1,23 @@@ ++#!/bin/sh ++set -e ++ ++# This is in case we upgrade from dcmtk version < 3.5.4 ++if [ -x "/etc/init.d/imagectn" ]; then ++ if which invoke-rc.d ; then ++ invoke-rc.d --quiet imagectn stop ++ else ++ /etc/init.d/imagectn stop ++ fi ++fi ++ ++if [ -x "/etc/init.d/dcmqrscp" ]; then ++ if which invoke-rc.d ; then ++ invoke-rc.d --quiet dcmqrscp stop ++ else ++ /etc/init.d/dcmqrscp stop ++ fi ++fi ++ ++#DEBHELPER# ++ ++exit 0 diff --cc debian/libdcmtk-dev.install index 00000000,00000000..c6ffc6e6 new file mode 100644 --- /dev/null +++ b/debian/libdcmtk-dev.install @@@ -1,0 -1,0 +1,4 @@@ ++usr/include/dcmtk/* ++usr/lib/*/*.so ++usr/lib/*/cmake/ ++usr/lib/*/pkgconfig diff --cc debian/libdcmtk19.install index 00000000,00000000..3de3b10a new file mode 100644 --- /dev/null +++ b/debian/libdcmtk19.install @@@ -1,0 -1,0 +1,1 @@@ ++usr/lib/*/*.so.* diff --cc debian/libdcmtk19.lintian-overrides index 00000000,00000000..d55e514d new file mode 100644 --- /dev/null +++ b/debian/libdcmtk19.lintian-overrides @@@ -1,0 -1,0 +1,5 @@@ ++# There is more than one library in one package bundles which makes perfectly ++# sense in this application but does not enable naming the library package apropriately ++libdcmtk19: package-name-doesnt-match-sonames ++libdcmtk19: embedded-library ++libdcmtk19: no-symbols-control-file diff --cc debian/patches/0007-CVE-2024-47796.patch index 00000000,00000000..eda61292 new file mode 100644 --- /dev/null +++ b/debian/patches/0007-CVE-2024-47796.patch @@@ -1,0 -1,0 +1,32 @@@ ++Author: Joerg Riesmeier ++Forwarded: https://git.dcmtk.org/?p=dcmtk.git;a=commit;h=89a6e399f1e17d08a8bc8cdaa05b2ac9a50cd4f6 ++Bug-Debian: https://bugs.debian.org/1093043 ++Reviewed-By: Étienne Mollier ++Last-Update: 2025-01-18 ++Description: Fixed issue rendering invalid monochrome image. ++ Fixed issue when rendering an invalid monochrome DICOM image where the ++ number of pixels stored does not match the expected number of pixels. ++ If the stored number is less than the expected number, the rest of the ++ pixel matrix for the intermediate representation was always filled with ++ the value 0. Under certain, very rare conditions, this could result in ++ memory problems reported by an Address Sanitizer (ASAN). Now, the rest ++ of the matrix is filled with the smallest possible value for the image. ++ . ++ Thanks to Emmanuel Tacheau from the Cisco Talos team ++ for the original report, the sample ++ file (PoC) and further details. See TALOS-2024-2122 and CVE-2024-47796. ++ ++--- dcmtk.orig/dcmimgle/include/dcmtk/dcmimgle/dimoipxt.h +++++ dcmtk/dcmimgle/include/dcmtk/dcmimgle/dimoipxt.h ++@@ -72,9 +72,9 @@ ++ rescale(pixel); // "copy" or reference pixel data ++ this->determineMinMax(OFstatic_cast(T3, this->Modality->getMinValue()), OFstatic_cast(T3, this->Modality->getMaxValue())); ++ } ++- /* erase empty part of the buffer (= blacken the background) */ +++ /* erase empty part of the buffer (= fill the background with the smallest possible value) */ ++ if ((this->Data != NULL) && (this->InputCount < this->Count)) ++- OFBitmanipTemplate::zeroMem(this->Data + this->InputCount, this->Count - this->InputCount); +++ OFBitmanipTemplate::setMem(this->Data + this->InputCount, OFstatic_cast(T3, this->Modality->getAbsMinimum()), this->Count - this->InputCount); ++ } ++ } ++ diff --cc debian/patches/0008-CVE-2024-52333.patch index 00000000,00000000..774f6bea new file mode 100644 --- /dev/null +++ b/debian/patches/0008-CVE-2024-52333.patch @@@ -1,0 -1,0 +1,48 @@@ ++Author: Joerg Riesmeier ++Forwarded: https://git.dcmtk.org/?p=dcmtk.git;a=commit;h=03e851b0586d05057c3268988e180ffb426b2e03 ++Bug-Debian: https://bugs.debian.org/1093047 ++Reviewed-By: Étienne Mollier ++Last-Update: 2025-01-18 ++Description: Added check to make sure: HighBit < BitsAllocated. ++ Added check to the image preprocessing to make sure that the value of ++ HighBit is always less than the value of BitsAllocated. Before, this ++ missing check could lead to memory corruption if an invalid combination ++ of values was retrieved from a malformed DICOM dataset. ++ . ++ Thanks to Emmanuel Tacheau from the Cisco Talos team ++ for the report, sample file (PoC) ++ and detailed analysis. See TALOS-2024-2121 and CVE-2024-52333. ++ ++--- dcmtk.orig/dcmimgle/libsrc/diimage.cc +++++ dcmtk/dcmimgle/libsrc/diimage.cc ++@@ -1,6 +1,6 @@ ++ /* ++ * ++- * Copyright (C) 1996-2024, OFFIS e.V. +++ * Copyright (C) 1996-2025, OFFIS e.V. ++ * All rights reserved. See COPYRIGHT file for details. ++ * ++ * This software and supporting documentation were developed by ++@@ -549,12 +549,18 @@ ++ { ++ const unsigned long fsize = OFstatic_cast(unsigned long, Rows) * OFstatic_cast(unsigned long, Columns) * ++ OFstatic_cast(unsigned long, SamplesPerPixel); ++- if ((BitsAllocated < 1) || (BitsStored < 1) || (BitsAllocated < BitsStored) || ++- (BitsStored > OFstatic_cast(Uint16, HighBit + 1))) +++ if ((BitsAllocated < 1) || (BitsStored < 1)) ++ { ++ ImageStatus = EIS_InvalidValue; ++- DCMIMGLE_ERROR("invalid values for 'BitsAllocated' (" << BitsAllocated << "), " ++- << "'BitsStored' (" << BitsStored << ") and/or 'HighBit' (" << HighBit << ")"); +++ DCMIMGLE_ERROR("invalid value(s) for 'BitsAllocated' (" << BitsAllocated << "), " +++ << "and/or 'BitsStored' (" << BitsStored << ")"); +++ return; +++ } +++ else if ((BitsAllocated < BitsStored) || (BitsAllocated <= HighBit) || ((BitsStored - 1) > HighBit)) +++ { +++ ImageStatus = EIS_InvalidValue; +++ DCMIMGLE_ERROR("invalid combination of values for 'BitsAllocated' (" << BitsAllocated << "), " +++ << "'BitsStored' (" << BitsStored << ") and 'HighBit' (" << HighBit << ")"); ++ return; ++ } ++ else if ((evr == EVR_OB) && (BitsStored <= 8)) diff --cc debian/patches/0009-CVE-2025-25475.patch index 00000000,00000000..8f2ff86f new file mode 100644 --- /dev/null +++ b/debian/patches/0009-CVE-2025-25475.patch @@@ -1,0 -1,0 +1,35 @@@ ++commit bffa3e9116abb7038b432443f16b1bd390e80245 ++Author: Marco Eichelberg ++Date: Thu Jan 23 15:51:21 2025 +0100 ++ ++ Fixed issue with invalid RLE compressed DICOM images. ++ ++ Fixed issue when processing an RLE compressed image where the RLE header ++ contains an invalid stripe size. ++ ++ Thanks to Ding zhengzheng for the report ++ and the sample file (PoC). ++ ++--- dcmtk.orig/dcmdata/libsrc/dcrleccd.cc +++++ dcmtk/dcmdata/libsrc/dcrleccd.cc ++@@ -1,6 +1,6 @@ ++ /* ++ * ++- * Copyright (C) 2002-2024, OFFIS e.V. +++ * Copyright (C) 2002-2025, OFFIS e.V. ++ * All rights reserved. See COPYRIGHT file for details. ++ * ++ * This software and supporting documentation were developed by ++@@ -348,6 +348,12 @@ ++ } /* while */ ++ ++ // last fragment for this RLE stripe +++ if (inputBytes + byteOffset > fragmentLength) +++ { +++ DCMDATA_ERROR("stream size in RLE header is wrong"); +++ inputBytes = fragmentLength-byteOffset; +++ } +++ ++ result = rledecoder.decompress(rleData + byteOffset, OFstatic_cast(size_t, inputBytes)); ++ ++ // special handling for zero pad byte at the end of the RLE stream diff --cc debian/patches/0010-CVE-2025-25474.patch index 00000000,00000000..b58b520b new file mode 100644 --- /dev/null +++ b/debian/patches/0010-CVE-2025-25474.patch @@@ -1,0 -1,0 +1,34 @@@ ++commit 1d205bcd307164c99e0d4bbf412110372658d847 ++Author: Joerg Riesmeier ++Date: Tue Jan 21 11:12:28 2025 +0100 ++ ++ Fixed another issue with invalid DICOM images. ++ ++ Fixed issue when processing an invalid DICOM image where the number of ++ pixels stored does not match the expected number of pixels (too less) ++ and the combination of BitsAllocated and BitsStored is really unusual ++ (e.g. 1 bit stored, but 52 bits allocated). In cases where the last ++ pixel (e.g. a single bit) does not fit into the buffer of the input ++ pixel data, a buffer overflow occurred on the heap. Now, the last entry ++ of the buffer is filled with the smallest possible value (e.g. 0 in case ++ of unsigned data). ++ ++ Thanks to Ding zhengzheng for the report ++ and the sample file (PoC). ++ ++--- dcmtk.orig/dcmimgle/include/dcmtk/dcmimgle/diinpxt.h +++++ dcmtk/dcmimgle/include/dcmtk/dcmimgle/diinpxt.h ++@@ -643,6 +643,13 @@ ++ skip -= times * bitsof_T1; ++ } ++ } +++ /* fill the remaining entry (if any) with the smallest value that is possible */ +++ if (q < Data + Count) +++ { +++ DCMIMGLE_TRACE("not enough data, filling last entry of input buffer with value = " << getAbsMinimum()); +++ *q = OFstatic_cast(T2, getAbsMinimum()); +++ } +++ ++ } ++ } else ++ DCMIMGLE_DEBUG("cannot allocate memory buffer for 'Data' in DiInputPixelTemplate::convert()"); diff --cc debian/patches/0011-CVE-2025-25472.patch index 00000000,00000000..90d710ab new file mode 100644 --- /dev/null +++ b/debian/patches/0011-CVE-2025-25472.patch @@@ -1,0 -1,0 +1,49 @@@ ++commit 410ffe2019b9db6a8f4036daac742a6f5e4d36c2 ++Author: Joerg Riesmeier ++Date: Fri Jan 17 17:53:50 2025 +0100 ++ ++ Fixed another issue with invalid mono images. ++ ++ Fixed issue when rendering an invalid monochrome DICOM image where the ++ number of pixels stored does not match the expected number of pixels. ++ In this case, only a single pixel is processed, but the pixel matrix is ++ much larger. Filling the rest of the pixel matrix with the smallest ++ possible value for the image is not working because of an optimized ++ memory usage (value would be out of range). Now, the pixel value to be ++ used is double-checked before it is actually filled into the "background" ++ of the image. ++ ++ Thanks to Ding zhengzheng for the report ++ and the sample file (PoC). ++ ++diff --git a/dcmimgle/include/dcmtk/dcmimgle/dimoipxt.h b/dcmimgle/include/dcmtk/dcmimgle/dimoipxt.h ++index 50389a540..f67967310 100644 ++--- a/dcmimgle/include/dcmtk/dcmimgle/dimoipxt.h +++++ b/dcmimgle/include/dcmtk/dcmimgle/dimoipxt.h ++@@ -28,6 +28,7 @@ ++ #include "dcmtk/ofstd/ofbmanip.h" ++ #include "dcmtk/ofstd/ofcast.h" ++ #include "dcmtk/ofstd/ofdiag.h" /* for DCMTK_DIAGNOSTIC macros */ +++#include "dcmtk/ofstd/oflimits.h" /* for OFnumeric_limits<> */ ++ ++ #include "dcmtk/dcmimgle/dimopxt.h" ++ #include "dcmtk/dcmimgle/diinpx.h" ++@@ -72,9 +73,16 @@ class DiMonoInputPixelTemplate ++ rescale(pixel); // "copy" or reference pixel data ++ this->determineMinMax(OFstatic_cast(T3, this->Modality->getMinValue()), OFstatic_cast(T3, this->Modality->getMaxValue())); ++ } ++- /* erase empty part of the buffer (= fill the background with the smallest possible value) */ +++ /* erase empty part of the buffer */ ++ if ((this->Data != NULL) && (this->InputCount < this->Count)) ++- OFBitmanipTemplate::setMem(this->Data + this->InputCount, OFstatic_cast(T3, this->Modality->getAbsMinimum()), this->Count - this->InputCount); +++ { +++ /* that means, fill the background with the smallest value that is possible */ +++ const T3 minOut = OFnumeric_limits::min(); +++ const T3 background = (this->Modality->getAbsMinimum() < OFstatic_cast(double, minOut)) ? minOut : OFstatic_cast(T3, this->Modality->getAbsMinimum()); +++ const size_t count = (this->Count - this->InputCount); +++ DCMIMGLE_DEBUG("filing empty part of the intermediate pixel data (" << count << " pixels) with value = " << OFstatic_cast(double, background)); +++ OFBitmanipTemplate::setMem(this->Data + this->InputCount, background, count); +++ } ++ } ++ } ++ diff --cc debian/patches/0012-CVE-2025-2357.patch index 00000000,00000000..067e30d3 new file mode 100644 --- /dev/null +++ b/debian/patches/0012-CVE-2025-2357.patch @@@ -1,0 -1,0 +1,512 @@@ ++From: Marco Eichelberg ++Date: Mon, 3 Mar 2025 11:33:18 +0000 (+0100) ++Subject: Fixed segfault in JPEG-LS decoder. ++X-Git-Url: http://git.dcmtk.org/?p=dcmtk.git;a=commitdiff_plain;h=3239a791542e1ea433d23aaa9e0a05a532ffabff;hp=92fc86e9e8d0808880bcc82e25982b2a61323cb8 ++ ++Fixed segfault in JPEG-LS decoder. ++ ++Fixed a bug in the JPEG-LS decoder that led to a segmentation fault if invalid ++input data was processed, due to insufficient validation of input data. ++ ++Thanks to Ding zhengzheng for the report ++and the sample file (PoC). ++ ++This closes DCMTK issue #1155. ++--- ++ ++diff --git a/dcmjpls/libcharls/scan.h b/dcmjpls/libcharls/scan.h ++index b4dea20d8..f13098104 100644 ++--- a/dcmjpls/libcharls/scan.h +++++ b/dcmjpls/libcharls/scan.h ++@@ -1,6 +1,6 @@ ++-// ++-// (C) Jan de Vaan 2007-2010, all rights reserved. See the accompanying "License.txt" for licensed use. ++-// +++// +++// (C) Jan de Vaan 2007-2010, all rights reserved. See the accompanying "License.txt" for licensed use. +++// ++ ++ #ifndef CHARLS_SCAN ++ #define CHARLS_SCAN ++@@ -11,7 +11,7 @@ ++ ++ #include "lokuptbl.h" ++ ++-// This file contains the code for handling a "scan". Usually an image is encoded as a single scan. +++// This file contains the code for handling a "scan". Usually an image is encoded as a single scan. ++ ++ #include DCMTK_DIAGNOSTIC_IGNORE_CONST_EXPRESSION_WARNING ++ ++@@ -21,10 +21,10 @@ extern OFVector rgquant10Ll; ++ extern OFVector rgquant12Ll; ++ extern OFVector rgquant16Ll; ++ // ++-// Apply +++// Apply ++ // ++ inlinehint LONG ApplySign(LONG i, LONG sign) ++-{ return (sign ^ i) - sign; } +++{ return (sign ^ i) - sign; } ++ ++ ++ ++@@ -58,20 +58,20 @@ inlinehint LONG GetPredictedValue(LONG Ra, LONG Rb, LONG Rc) ++ ++ inlinehint LONG GetPredictedValue(LONG Ra, LONG Rb, LONG Rc) ++ { ++- // sign trick reduces the number of if statements (branches) +++ // sign trick reduces the number of if statements (branches) ++ LONG sgn = BitWiseSign(Rb - Ra); ++ ++- // is Ra between Rc and Rb? +++ // is Ra between Rc and Rb? ++ if ((sgn ^ (Rc - Ra)) < 0) ++ { ++ return Rb; ++- } +++ } ++ else if ((sgn ^ (Rb - Rc)) < 0) ++ { ++ return Ra; ++ } ++ ++- // default case, valid if Rc element of [Ra,Rb] +++ // default case, valid if Rc element of [Ra,Rb] ++ return Ra + Rb - Rc; ++ } ++ ++@@ -110,7 +110,7 @@ public: ++ ++ public: ++ ++- JlsCodec(const TRAITS& inTraits, const JlsParameters& info) : STRATEGY(info), +++ JlsCodec(const TRAITS& inTraits, const JlsParameters& info) : STRATEGY(info), ++ traits(inTraits), ++ _rect(), ++ _width(0), ++@@ -120,13 +120,13 @@ public: ++ _RUNindex(0), ++ _pquant(0), ++ _bCompare(0) ++- +++ ++ { ++ if (Info().ilv == ILV_NONE) ++ { ++ Info().components = 1; ++ } ++- } +++ } ++ ++ ++ void SetPresets(const JlsCustomParameters& presets) ++@@ -135,9 +135,9 @@ public: ++ ++ InitParams(presets.T1 != 0 ? presets.T1 : presetDefault.T1, ++ presets.T2 != 0 ? presets.T2 : presetDefault.T2, ++- presets.T3 != 0 ? presets.T3 : presetDefault.T3, +++ presets.T3 != 0 ? presets.T3 : presetDefault.T3, ++ presets.RESET != 0 ? presets.RESET : presetDefault.RESET); ++- } +++ } ++ ++ ++ bool IsInterleaved() ++@@ -155,13 +155,13 @@ public: ++ ++ signed char QuantizeGratientOrg(LONG Di); ++ inlinehint LONG QuantizeGratient(LONG Di) ++- { +++ { ++ ASSERT(QuantizeGratientOrg(Di) == *(_pquant + Di)); ++- return *(_pquant + Di); +++ return *(_pquant + Di); ++ } ++ ++ void InitQuantizationLUT(); ++- +++ ++ LONG DecodeValue(LONG k, LONG limit, LONG qbpp); ++ inlinehint void EncodeMappedValue(LONG k, LONG mappedError, LONG limit); ++ ++@@ -216,27 +216,27 @@ public: ++ { ++ LONG sign = BitWiseSign(Qs); ++ JlsContext& ctx = _contexts[ApplySign(Qs, sign)]; ++- LONG k = ctx.GetGolomb(); ++- LONG Px = traits.CorrectPrediction(pred + ApplySign(ctx.C, sign)); +++ LONG k = ctx.GetGolomb(); +++ LONG Px = traits.CorrectPrediction(pred + ApplySign(ctx.C, sign)); ++ ++ LONG ErrVal; ++ const Code& code = decodingTables[k].Get(STRATEGY::PeekByte()); ++ if (code.GetLength() != 0) ++ { ++ STRATEGY::Skip(code.GetLength()); ++- ErrVal = code.GetValue(); +++ ErrVal = code.GetValue(); ++ ASSERT(ABS(ErrVal) < 65535); ++ } ++ else ++ { ++- ErrVal = UnMapErrVal(DecodeValue(k, traits.LIMIT, traits.qbpp)); +++ ErrVal = UnMapErrVal(DecodeValue(k, traits.LIMIT, traits.qbpp)); ++ if (ABS(ErrVal) > 65535) ++ throw JlsException(InvalidCompressedData); ++- } +++ } ++ ErrVal = ErrVal ^ ((traits.NEAR == 0) ? ctx.GetErrorCorrection(k) : 0); ++- ctx.UpdateVariables(ErrVal, traits.NEAR, traits.RESET); +++ ctx.UpdateVariables(ErrVal, traits.NEAR, traits.RESET); ++ ErrVal = ApplySign(ErrVal, sign); ++- return traits.ComputeReconstructedSample(Px, ErrVal); +++ return traits.ComputeReconstructedSample(Px, ErrVal); ++ } ++ ++ ++@@ -245,7 +245,7 @@ public: ++ LONG sign = BitWiseSign(Qs); ++ JlsContext& ctx = _contexts[ApplySign(Qs, sign)]; ++ LONG k = ctx.GetGolomb(); ++- LONG Px = traits.CorrectPrediction(pred + ApplySign(ctx.C, sign)); +++ LONG Px = traits.CorrectPrediction(pred + ApplySign(ctx.C, sign)); ++ ++ LONG ErrVal = traits.ComputeErrVal(ApplySign(x - Px, sign)); ++ ++@@ -270,16 +270,16 @@ public: ++ size_t DecodeScan(void* rawData, const JlsRect& size, BYTE **buf, size_t *buf_size, size_t offset, bool bCompare); ++ ++ protected: ++- // codec parameters +++ // codec parameters ++ TRAITS traits; ++ JlsRect _rect; ++ int _width; ++- LONG T1; +++ LONG T1; ++ LONG T2; ++- LONG T3; +++ LONG T3; ++ ++ // compression context ++- JlsContext _contexts[365]; +++ JlsContext _contexts[365]; ++ CContextRunMode _contextRunmode[2]; ++ LONG _RUNindex; ++ PIXEL* _previousLine; // previous line ptr ++@@ -309,7 +309,7 @@ CTable InitTable(LONG k) ++ CTable table; ++ short nerr; ++ for (nerr = 0; ; nerr++) ++- { +++ { ++ // Q is not used when k != 0 ++ LONG merrval = GetMappedErrVal(nerr);//, k, -1); ++ OFPair paircode = CreateEncodedValue(k, merrval); ++@@ -321,7 +321,7 @@ CTable InitTable(LONG k) ++ } ++ ++ for (nerr = -1; ; nerr--) ++- { +++ { ++ // Q is not used when k != 0 ++ LONG merrval = GetMappedErrVal(nerr);//, k, -1); ++ OFPair paircode = CreateEncodedValue(k, merrval); ++@@ -364,7 +364,7 @@ inlinehint void JlsCodec::EncodeMappedValue(LONG k, LONG mapped ++ if (highbits + 1 > 31) ++ { ++ STRATEGY::AppendToBitStream(0, highbits / 2); ++- highbits = highbits - highbits / 2; +++ highbits = highbits - highbits / 2; ++ } ++ STRATEGY::AppendToBitStream(1, highbits + 1); ++ STRATEGY::AppendToBitStream((mappedError & ((1 << k) - 1)), k); ++@@ -374,11 +374,11 @@ inlinehint void JlsCodec::EncodeMappedValue(LONG k, LONG mapped ++ if (limit - traits.qbpp > 31) ++ { ++ STRATEGY::AppendToBitStream(0, 31); ++- STRATEGY::AppendToBitStream(1, limit - traits.qbpp - 31); +++ STRATEGY::AppendToBitStream(1, limit - traits.qbpp - 31); ++ } ++ else ++ { ++- STRATEGY::AppendToBitStream(1, limit - traits.qbpp); +++ STRATEGY::AppendToBitStream(1, limit - traits.qbpp); ++ } ++ STRATEGY::AppendToBitStream((mappedError - 1) & ((1 << traits.qbpp) - 1), traits.qbpp); ++ } ++@@ -389,33 +389,33 @@ inlinehint void JlsCodec::EncodeMappedValue(LONG k, LONG mapped ++ template ++ void JlsCodec::InitQuantizationLUT() ++ { ++- // for lossless mode with default parameters, we have precomputed te luts for bitcounts 8,10,12 and 16 +++ // for lossless mode with default parameters, we have precomputed te luts for bitcounts 8,10,12 and 16 ++ if (traits.NEAR == 0 && traits.MAXVAL == (1 << traits.bpp) - 1) ++ { ++ JlsCustomParameters presets = ComputeDefault(traits.MAXVAL, traits.NEAR); ++ if (presets.T1 == T1 && presets.T2 == T2 && presets.T3 == T3) ++ { ++- if (traits.bpp == 8) +++ if (traits.bpp == 8) ++ { ++- _pquant = &rgquant8Ll[rgquant8Ll.size() / 2 ]; +++ _pquant = &rgquant8Ll[rgquant8Ll.size() / 2 ]; ++ return; ++ } ++- if (traits.bpp == 10) +++ if (traits.bpp == 10) ++ { ++- _pquant = &rgquant10Ll[rgquant10Ll.size() / 2 ]; +++ _pquant = &rgquant10Ll[rgquant10Ll.size() / 2 ]; ++ return; ++- } ++- if (traits.bpp == 12) +++ } +++ if (traits.bpp == 12) ++ { ++- _pquant = &rgquant12Ll[rgquant12Ll.size() / 2 ]; +++ _pquant = &rgquant12Ll[rgquant12Ll.size() / 2 ]; ++ return; ++- } ++- if (traits.bpp == 16) +++ } +++ if (traits.bpp == 16) ++ { ++- _pquant = &rgquant16Ll[rgquant16Ll.size() / 2 ]; +++ _pquant = &rgquant16Ll[rgquant16Ll.size() / 2 ]; ++ return; ++- } ++- } +++ } +++ } ++ } ++ ++ LONG RANGE = 1 << traits.bpp; ++@@ -453,7 +453,7 @@ template ++ LONG JlsCodec::DecodeRIError(CContextRunMode& ctx) ++ { ++ LONG k = ctx.GetGolomb(); ++- LONG EMErrval = DecodeValue(k, traits.LIMIT - J[_RUNindex]-1, traits.qbpp); +++ LONG EMErrval = DecodeValue(k, traits.LIMIT - J[_RUNindex]-1, traits.qbpp); ++ LONG Errval = ctx.ComputeErrVal(EMErrval + ctx._nRItype, k); ++ ctx.UpdateVariables(Errval, EMErrval); ++ return Errval; ++@@ -466,7 +466,7 @@ void JlsCodec::EncodeRIError(CContextRunMode& ctx, LONG Errval) ++ { ++ LONG k = ctx.GetGolomb(); ++ bool map = ctx.ComputeMap(Errval, k); ++- LONG EMErrval = 2 * ABS(Errval) - ctx._nRItype - map; +++ LONG EMErrval = 2 * ABS(Errval) - ctx._nRItype - map; ++ ++ ASSERT(Errval == ctx.ComputeErrVal(EMErrval + ctx._nRItype, k)); ++ EncodeMappedValue(k, EMErrval, traits.LIMIT-J[_RUNindex]-1); ++@@ -476,7 +476,7 @@ void JlsCodec::EncodeRIError(CContextRunMode& ctx, LONG Errval) ++ ++ template ++ Triplet JlsCodec::DecodeRIPixel(Triplet Ra, Triplet Rb) ++-{ +++{ ++ LONG Errval1 = DecodeRIError(_contextRunmode[0]); ++ LONG Errval2 = DecodeRIError(_contextRunmode[0]); ++ LONG Errval3 = DecodeRIError(_contextRunmode[0]); ++@@ -513,18 +513,18 @@ Triplet JlsCodec::EncodeRIPixel(Trip ++ template ++ void JlsCodec::EncodeRunPixels(LONG runLength, bool endOfLine) ++ { ++- while (runLength >= LONG(1 << J[_RUNindex])) +++ while (runLength >= LONG(1 << J[_RUNindex])) ++ { ++ STRATEGY::AppendOnesToBitStream(1); ++ runLength = runLength - LONG(1 << J[_RUNindex]); ++ IncrementRunIndex(); ++ } ++ ++- if (endOfLine) +++ if (endOfLine) ++ { ++- if (runLength != 0) +++ if (runLength != 0) ++ { ++- STRATEGY::AppendOnesToBitStream(1); +++ STRATEGY::AppendOnesToBitStream(1); ++ } ++ } ++ else ++@@ -556,7 +556,7 @@ LONG JlsCodec::DecodeRunPixels(PIXEL Ra, PIXEL* startPos, LONG ++ ++ if (index != cpixelMac) ++ { ++- // incomplete run +++ // incomplete run ++ index += (J[_RUNindex] > 0) ? STRATEGY::ReadValue(J[_RUNindex]) : 0; ++ } ++ ++@@ -566,7 +566,7 @@ LONG JlsCodec::DecodeRunPixels(PIXEL Ra, PIXEL* startPos, LONG ++ for (LONG i = 0; i < index; ++i) ++ { ++ startPos[i] = Ra; ++- } +++ } ++ ++ return index; ++ } ++@@ -582,7 +582,7 @@ LONG JlsCodec::DoRunMode(LONG index, EncoderStrategy*) ++ ++ LONG runLength = 0; ++ ++- while (traits.IsNear(ptypeCurX[runLength],Ra)) +++ while (traits.IsNear(ptypeCurX[runLength],Ra)) ++ { ++ ptypeCurX[runLength] = Ra; ++ runLength++; ++@@ -629,14 +629,24 @@ void JlsCodec::DoLine(SAMPLE*) ++ LONG index = 0; ++ LONG Rb = _previousLine[index-1]; ++ LONG Rd = _previousLine[index]; +++ LONG RANGE_UPPER = 1 << traits.bpp; +++ LONG RANGE_LOWER = - RANGE_UPPER; ++ ++ while(index < _width) ++- { +++ { ++ LONG Ra = _currentLine[index -1]; ++ LONG Rc = Rb; ++ Rb = Rd; ++ Rd = _previousLine[index + 1]; ++ +++ // make sure that values are not out of range +++ if ( (Rd - Rb < RANGE_LOWER) || (Rd - Rb > RANGE_UPPER) +++ || (Rb - Rc < RANGE_LOWER) || (Rb - Rc > RANGE_UPPER) +++ || (Rc - Ra < RANGE_LOWER) || (Rc - Ra > RANGE_UPPER)) +++ { +++ throw JlsException(InvalidCompressedData); +++ } +++ ++ LONG Qs = ComputeContextID(QuantizeGratient(Rd - Rb), QuantizeGratient(Rb - Rc), QuantizeGratient(Rc - Ra)); ++ ++ if (Qs != 0) ++@@ -648,8 +658,8 @@ void JlsCodec::DoLine(SAMPLE*) ++ { ++ index += DoRunMode(index, (STRATEGY*)(NULL)); ++ Rb = _previousLine[index-1]; ++- Rd = _previousLine[index]; ++- } +++ Rd = _previousLine[index]; +++ } ++ } ++ } ++ ++@@ -661,7 +671,7 @@ void JlsCodec::DoLine(Triplet*) ++ { ++ LONG index = 0; ++ while(index < _width) ++- { +++ { ++ Triplet Ra = _currentLine[index -1]; ++ Triplet Rc = _previousLine[index-1]; ++ Triplet Rb = _previousLine[index]; ++@@ -671,7 +681,7 @@ void JlsCodec::DoLine(Triplet*) ++ LONG Qs2 = ComputeContextID(QuantizeGratient(Rd.v2 - Rb.v2), QuantizeGratient(Rb.v2 - Rc.v2), QuantizeGratient(Rc.v2 - Ra.v2)); ++ LONG Qs3 = ComputeContextID(QuantizeGratient(Rd.v3 - Rb.v3), QuantizeGratient(Rb.v3 - Rc.v3), QuantizeGratient(Rc.v3 - Ra.v3)); ++ ++- +++ ++ if (Qs1 == 0 && Qs2 == 0 && Qs3 == 0) ++ { ++ index += DoRunMode(index, (STRATEGY*)(NULL)); ++@@ -684,19 +694,19 @@ void JlsCodec::DoLine(Triplet*) ++ Rx.v3 = DoRegular(Qs3, _currentLine[index].v3, GetPredictedValue(Ra.v3, Rb.v3, Rc.v3), (STRATEGY*)(NULL)); ++ _currentLine[index] = Rx; ++ index++; ++- } +++ } ++ } ++ } ++ ++ ++-// DoScan: Encodes or decodes a scan. +++// DoScan: Encodes or decodes a scan. ++ // In ILV_SAMPLE mode, multiple components are handled in DoLine ++ // In ILV_LINE mode, a call do DoLine is made for every component ++-// In ILV_NONE mode, DoScan is called for each component +++// In ILV_NONE mode, DoScan is called for each component ++ ++ template ++ void JlsCodec::DoScan(BYTE **ptr, size_t *size, size_t offset) ++-{ +++{ ++ _width = Info().width; ++ ++ STRATEGY::Init(ptr, size, offset); ++@@ -706,11 +716,11 @@ void JlsCodec::DoScan(BYTE **ptr, size_t *size, size_t offset) ++ ++ OFVector vectmp(2 * components * pixelstride); ++ OFVector rgRUNindex(components); ++- +++ ++ for (LONG line = 0; line < Info().height; ++line) ++ { ++- _previousLine = &vectmp[1]; ++- _currentLine = &vectmp[1 + components * pixelstride]; +++ _previousLine = &vectmp[1]; +++ _currentLine = &vectmp[1 + components * pixelstride]; ++ if ((line & 1) == 1) ++ { ++ PIXEL *tmp = _previousLine; ++@@ -724,17 +734,17 @@ void JlsCodec::DoScan(BYTE **ptr, size_t *size, size_t offset) ++ for (int component = 0; component < components; ++component) ++ { ++ _RUNindex = rgRUNindex[component]; ++- +++ ++ // initialize edge pixels used for prediction ++ _previousLine[_width] = _previousLine[_width - 1]; ++ _currentLine[-1] = _previousLine[0]; ++ DoLine((PIXEL*) NULL); // dummy arg for overload resolution ++- +++ ++ rgRUNindex[component] = _RUNindex; ++ _previousLine += pixelstride; ++ _currentLine += pixelstride; ++ } ++- +++ ++ if (_rect.Y <= line && line < _rect.Y + _rect.Height) ++ { ++ STRATEGY::OnLineEnd(_rect.Width, _currentLine + _rect.X - (components * pixelstride), pixelstride); ++@@ -754,7 +764,7 @@ ProcessLine* JlsCodec::CreateProcess(void* pvoidOut) ++ return new PostProcesSingleComponent(pvoidOut, Info(), sizeof(typename TRAITS::PIXEL)); ++ ++ if (Info().colorTransform == 0) ++- return new ProcessTransformed >(pvoidOut, Info(), TransformNone()); +++ return new ProcessTransformed >(pvoidOut, Info(), TransformNone()); ++ ++ if (Info().bitspersample == sizeof(SAMPLE)*8) ++ { ++@@ -765,7 +775,7 @@ ProcessLine* JlsCodec::CreateProcess(void* pvoidOut) ++ case COLORXFORM_HP3 : return new ProcessTransformed >(pvoidOut, Info(), TransformHp3()); break; ++ default: throw JlsException(UnsupportedColorTransform); ++ } ++- } +++ } ++ else if (Info().bitspersample > 8) ++ { ++ int shift = 16 - Info().bitspersample; ++@@ -796,7 +806,7 @@ size_t JlsCodec::EncodeScan(const void* rawData, BYTE **ptr, si ++ } ++ ++ DoScan(ptr, size, offset); ++- +++ ++ return STRATEGY::GetLength(); ++ ++ } ++@@ -827,7 +837,7 @@ size_t JlsCodec::DecodeScan(void* rawData, const JlsRect& rect, ++ _rect = rect; ++ ++ DoScan(ptr, size, offset + readBytes); ++- +++ ++ return STRATEGY::GetCurBytePos() - (*ptr + offset); ++ } ++ diff --cc debian/patches/01_dcmtk_3.6.0-1.patch index 00000000,00000000..199bb782 new file mode 100644 --- /dev/null +++ b/debian/patches/01_dcmtk_3.6.0-1.patch @@@ -1,0 -1,0 +1,81 @@@ ++Author: Jürgen Salk ++Description: The original maintainer Jürgen Salk applied ++ a set of patches to the original code. This file contains ++ changes to C++ code ++Forwarded: not-needed ++ ++--- a/dcmqrdb/etc/dcmqrscp.cfg +++++ b/dcmqrdb/etc/dcmqrscp.cfg ++@@ -21,8 +21,8 @@ ++ # SpecificCharacterSet = "ISO_IR 192", override, discard, transliterate ++ ++ # ++-# UserName = ++-# GroupName = +++UserName = dcmtk +++GroupName = dcmtk ++ ++ HostTable BEGIN ++ # ++@@ -38,12 +38,13 @@ ++ # NOTE: in the current implementation you cannot substitute an IP address ++ # for a hostname. ++ # ++-acme1 = (ACME1, acmehost1, 5678) ++-acme2 = (ACME2, acmehost2, 5678) ++-acmeCTcompany = acme1, acme2 ++-united1 = (UNITED1, unitedhost1, 104) ++-united2 = (UNITED2, unitedhost2, 104) ++-unitedMRcompany = united1, united2 +++# Example: +++#acme1 = (ACME1, acmehost1, 5678) +++#acme2 = (ACME2, acmehost2, 5678) +++#acmeCTcompany = acme1, acme2 +++#united1 = (UNITED1, unitedhost1, 104) +++#united2 = (UNITED2, unitedhost2, 104) +++#unitedMRcompany = united1, united2 ++ # ++ HostTable END ++ ++@@ -61,8 +62,9 @@ ++ # VendorName = SymbolicName ++ # The symbolic name should be defined in the HostTable. ++ # ++-"Acme CT Company" = acmeCTcompany ++-"United MR Company" = unitedMRcompany +++# Example: +++#"Acme CT Company" = acmeCTcompany +++#"United MR Company" = unitedMRcompany ++ # ++ VendorTable END ++ ++@@ -80,8 +82,13 @@ ++ # Entry in HostTable | ++ # ANY ++ # ++-COMMON /home/dicom/db/COMMON R (200, 1024mb) ANY ++-ACME_STORE /home/dicom/db/ACME_STORE RW (9, 1024mb) acmeCTcompany ++-UNITED_STORE /home/dicom/db/UNITED_STORE RW (9, 1024mb) unitedMRcompany +++# Example: +++# +++#ACME_STORE /var/lib/dcmtk/db/ACME_STORE RW (9, 1024mb) acmeCTcompany +++#UNITED_STORE /var/lib/dcmtk/db/UNITED_STORE RW (9, 1024mb) unitedMRcompany +++# +++# Uncomment and adjust the following lines for a common r/rw storage area: +++#READWRITE /var/lib/dcmtk/db/READWRITE RW (10, 1024mb) ANY +++#READ /var/lib/dcmtk/db/READ R (200, 1024mb) ANY ++ # ++ AETable END ++--- a/dcmqrdb/docs/dcmqrcnf.txt +++++ b/dcmqrdb/docs/dcmqrcnf.txt ++@@ -46,8 +46,8 @@ ++ MaxPDUSize = 8192 ++ MaxAssociations = 20 ++ SpecificCharacterSet = fallback ++-UserName = (do not change user) ++-GroupName = (do not change group) +++UserName = dcmtk +++GroupName = dcmtk ++ ++ Available options for specific character sets are: ++ diff --cc debian/patches/03_datadic_install.patch index 00000000,00000000..b0fa0af3 new file mode 100644 --- /dev/null +++ b/debian/patches/03_datadic_install.patch @@@ -1,0 -1,0 +1,69 @@@ ++Description: Install dict to versioned dir ++Bug-Debian: https://bugs.debian.org/709123 ++Forwarded: not-needed ++Author: Mathieu Malaterre ++--- a/CMake/GenerateDCMTKConfigure.cmake +++++ b/CMake/GenerateDCMTKConfigure.cmake ++@@ -118,23 +118,8 @@ endif() ++ ++ # Configure file ++ ++-# Windows being windows, it lies about its processor type to 32 bit binaries ++-set(SYSTEM_PROCESSOR "$ENV{PROCESSOR_ARCHITEW6432}") ++-if(NOT SYSTEM_PROCESSOR) ++- if(WIN32 AND NOT CYGWIN) ++- if(CMAKE_GENERATOR_PLATFORM) ++- set(SYSTEM_PROCESSOR "${CMAKE_GENERATOR_PLATFORM}") ++- elseif(CMAKE_SIZEOF_VOID_P EQUAL 8) ++- set(SYSTEM_PROCESSOR "x64") ++- elseif(CMAKE_SIZEOF_VOID_P EQUAL 4) ++- set(SYSTEM_PROCESSOR "Win32") ++- endif() ++- else() ++- set(SYSTEM_PROCESSOR "${CMAKE_SYSTEM_PROCESSOR}") ++- endif() ++-endif() ++ # CMake doesn't provide a configure-style system type string ++-set(CANONICAL_HOST_TYPE "${SYSTEM_PROCESSOR}-${CMAKE_SYSTEM_NAME}") +++set(CANONICAL_HOST_TYPE "Debian") ++ DCMTK_UNSET(SYSTEM_PROCESSOR) ++ ++ # Configure dictionary path and install prefix ++@@ -147,10 +132,10 @@ if(WIN32 AND NOT CYGWIN) ++ set(ENVIRONMENT_PATH_SEPARATOR ";") ++ # Set dictionary path to the data dir inside install main dir (prefix) ++ if(DCMTK_DEFAULT_DICT STREQUAL "external") ++- set(DCM_DICT_DEFAULT_PATH "${DCMTK_PREFIX}\\\\${CMAKE_INSTALL_DATADIR}\\\\dcmtk\\\\dicom.dic") +++ set(DCM_DICT_DEFAULT_PATH "${DCMTK_PREFIX}\\\\${CMAKE_INSTALL_DATADIR}\\\\dicom.dic") ++ # If private dictionary should be utilized, add it to default dictionary path. ++ if(ENABLE_PRIVATE_TAGS) ++- set(DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH};${DCMTK_PREFIX}\\\\${CMAKE_INSTALL_DATADIR}\\\\dcmtk\\\\private.dic") +++ set(DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH};${DCMTK_PREFIX}\\\\${CMAKE_INSTALL_DATADIR}\\\\private.dic") ++ endif() ++ # Again, for Windows strip all / from path and replace it with \\. ++ string(REGEX REPLACE "/" "\\\\\\\\" DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH}") ++@@ -168,10 +153,10 @@ else() ++ set(ENVIRONMENT_PATH_SEPARATOR ":") ++ # Set dictionary path to the data dir inside install main dir (prefix). ++ if(DCMTK_DEFAULT_DICT STREQUAL "external") ++- set(DCM_DICT_DEFAULT_PATH "${DCMTK_PREFIX}/${CMAKE_INSTALL_DATADIR}/dcmtk/dicom.dic") +++ set(DCM_DICT_DEFAULT_PATH "${DCMTK_PREFIX}/${CMAKE_INSTALL_DATADIC}/dicom.dic") ++ # If private dictionary should be utilized, add it to default dictionary path. ++ if(ENABLE_PRIVATE_TAGS) ++- set(DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH}:${DCMTK_PREFIX}/${CMAKE_INSTALL_DATADIR}/dcmtk/private.dic") +++ set(DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH}:${DCMTK_PREFIX}/${CMAKE_INSTALL_DATADIC}/private.dic") ++ endif() ++ else() ++ set(DCM_DICT_DEFAULT_PATH "") ++--- a/dcmdata/data/CMakeLists.txt +++++ b/dcmdata/data/CMakeLists.txt ++@@ -1,5 +1,8 @@ ++ # declare installation files ++-install(FILES dicom.dic acrnema.dic private.dic diconde.dic dcm2xml.dtd dumppat.txt SC.dump VLP.dump DESTINATION "${CMAKE_INSTALL_DATADIR}/dcmtk" COMPONENT data) +++set(DCMTK_INSTALL_DATDIR "share/libdcmtk${DCMTK_ABI_VERSION}") +++ +++install(FILES dcm2xml.dtd dumppat.txt SC.dump VLP.dump DESTINATION "${CMAKE_INSTALL_DATADIR}/dcmtk" COMPONENT data) +++install(FILES dicom.dic acrnema.dic private.dic diconde.dic DESTINATION ${CMAKE_INSTALL_DATADIC} COMPONENT data) ++ ++ # add paths to the dictionaries to a CMake variable for being used by the unit tests ++ set(DCMTK_DICOM_DICTIONARIES diff --cc debian/patches/07_dont_export_all_executables.patch index 00000000,00000000..dac3a5e0 new file mode 100644 --- /dev/null +++ b/debian/patches/07_dont_export_all_executables.patch @@@ -1,0 -1,0 +1,27 @@@ ++Description: Don't add executables to cmake exports ++ CMake exports are used by other packages that compile ++ and link against dcmtk. Because Debian moves some of ++ these executables and also dosn't install the test ++ executables, this import may fail leading to failure ++ to configure the according package. ++Bug-Debian: https://bugs.debian.org/803304 ++Author: Gert Wollny ++Forwarded: not-needed ++Index: dcmtk/CMake/dcmtkMacros.cmake ++=================================================================== ++--- dcmtk.orig/CMake/dcmtkMacros.cmake +++++ dcmtk/CMake/dcmtkMacros.cmake ++@@ -59,11 +59,11 @@ macro(DCMTK_ADD_EXECUTABLE PROGRAM) ++ endif() ++ ++ # Collect executable as part of global DCMTK_EXECUTABLE_TARGETS property ++- set_property(GLOBAL APPEND PROPERTY DCMTK_EXECUTABLE_TARGETS ${PROGRAM}) +++ #set_property(GLOBAL APPEND PROPERTY DCMTK_EXECUTABLE_TARGETS ${PROGRAM}) ++ ++ # declare installation files, also export DCMTKTargets.cmake ++ install(TARGETS ${PROGRAM} ++- EXPORT DCMTKTargets +++ # EXPORT DCMTKTargets ++ COMPONENT bin ++ DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ endif() diff --cc debian/patches/remove_version.patch index 00000000,00000000..05faf03a new file mode 100644 --- /dev/null +++ b/debian/patches/remove_version.patch @@@ -1,0 -1,0 +1,22 @@@ ++Description: Remove version ++Author: Mathieu Malaterre ++Forwarded: not-needed ++Bug-Debian: https://bugs.debian.org/1098944 ++Last-Update: 2025-03-21 ++ ++ ++Index: dcmtk/CMake/GenerateDCMTKConfigure.cmake ++=================================================================== ++--- dcmtk.orig/CMake/GenerateDCMTKConfigure.cmake +++++ dcmtk/CMake/GenerateDCMTKConfigure.cmake ++@@ -195,8 +195,8 @@ else() ++ ++ # Modify the installation paths for configuration files, data files and documents ++ # by adding a subdirectory with the DCMTK name and version number ++- set(CMAKE_INSTALL_SYSCONFDIR "${CMAKE_INSTALL_SYSCONFDIR}/dcmtk-${DCMTK_COMPLETE_PACKAGE_VERSION}") ++- set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATADIR}/dcmtk-${DCMTK_COMPLETE_PACKAGE_VERSION}") +++ set(CMAKE_INSTALL_SYSCONFDIR "${CMAKE_INSTALL_SYSCONFDIR}/dcmtk") +++ set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATADIR}/dcmtk") ++ set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DOCDIR}-${DCMTK_COMPLETE_PACKAGE_VERSION}") ++ ++ # These variables are defined as macros in osconfig.h and must end with a path separator diff --cc debian/patches/series index 00000000,00000000..ec391766 new file mode 100644 --- /dev/null +++ b/debian/patches/series @@@ -1,0 -1,0 +1,10 @@@ ++01_dcmtk_3.6.0-1.patch ++#03_datadic_install.patch ++07_dont_export_all_executables.patch ++remove_version.patch ++0007-CVE-2024-47796.patch ++0008-CVE-2024-52333.patch ++0009-CVE-2025-25475.patch ++0010-CVE-2025-25474.patch ++0011-CVE-2025-25472.patch ++0012-CVE-2025-2357.patch diff --cc debian/rules index 00000000,00000000..a33f37f1 new file mode 100755 --- /dev/null +++ b/debian/rules @@@ -1,0 -1,0 +1,101 @@@ ++#!/usr/bin/make -f ++#export DH_VERBOSE=1 ++ ++# export DEB_BUILD_MAINT_OPTIONS = hardening=+pie ++ifeq ($(DEB_TARGET_ARCH),armel) ++ # https://lists.debian.org/debian-arm/2024/01/msg00031.html ++ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1060104 ++ export DEB_BUILD_MAINT_OPTIONS = hardening=+all,-stackclash optimize=+lto ++else ++ export DEB_BUILD_MAINT_OPTIONS = hardening=+all optimize=+lto ++endif ++ ++# needed for the tests ++export DCMDICTPATH=$(CURDIR)/dcmdata/data/dicom.dic ++ ++# deduce documentation option (build-indep target) ++ifeq "" "$(filter %-doc,$(shell dh_listpackages))" ++ BUILDDOC = OFF ++else ++ BUILDDOC = ON ++endif ++ ++ifeq ($(DEB_HOST_ARCH_CPU),i386) ++ DEB_CXXFLAGS_MAINT_APPEND += -fexcess-precision=fast ++endif ++ ++# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1001703 ++DEB_CXXFLAGS_MAINT_APPEND += -DENABLE_DCMJPLS_INTERLEAVE_NONE ++export DEB_CXXFLAGS_MAINT_APPEND ++ ++# when BUILDDOC==OFF, convenient copies of doxygen man pages are used ++# when BUILDDOC==ON, doxygen man pages are being regenerated, this may leads to ++# improper md5sum... ++ ++%: ++ dh $@ --buildsystem=cmake ++ ++CMAKE_EXTRA_FLAGS += \ ++ -DBUILD_SHARED_LIBS:BOOL=ON \ ++ -DCMAKE_BUILD_TYPE:STRING=None \ ++ -DCMAKE_CXX_EXTENSIONS:BOOL=OFF \ ++ -DCMAKE_CXX_STANDARD:STRING=17 \ ++ -DCMAKE_INSTALL_DATADIC:STRING=share/libdcmtk18 \ ++ -DCMAKE_SKIP_RPATH:BOOL=ON \ ++ -DCMAKE_VERBOSE_MAKEFILE=ON \ ++ -DDCMTK_ENABLE_PRIVATE_TAGS:BOOL=ON \ ++ -DDCMTK_ENABLE_STL:BOOL=ON \ ++ -DDCMTK_WITH_DOXYGEN:BOOL=$(BUILDDOC) \ ++ -DDCMTK_WITH_ICONV:BOOL=OFF \ ++ -DDCMTK_WITH_ICU:BOOL=OFF \ ++ -DDCMTK_WITH_OPENSSL:BOOL=ON \ ++ -DDCMTK_WITH_STDLIBC_ICONV:BOOL=OFF \ ++ -DDCMTK_WITH_TIFF:BOOL=ON \ ++ -DDCMTK_WITH_XML:BOOL=ON \ ++ -DDCMTK_WITH_ZLIB:BOOL=ON \ ++ -DUSE_COMPILER_HIDDEN_VISIBILITY:BOOL=ON \ ++ ++ifneq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) ++ CMAKE_EXTRA_FLAGS += -DBUILD_TESTING:BOOL=OFF ++endif ++ ++override_dh_auto_configure: ++ dh_auto_configure -- $(CMAKE_EXTRA_FLAGS) ++ ++override_dh_auto_build-arch: ++ # need man page in -arch packages: ++ #$(MAKE) -C obj-* man ++ dh_auto_build ++ sed -i 's% -ffile-prefix-map=[^ ]* % %' obj-*/CMakeFiles/DCMTKConfig.cmake ++ ++# Let's be smart with building doc ++override_dh_auto_build-indep: ++ $(MAKE) -C obj-* DOXYGEN ++ ++override_dh_auto_test-arch: ++ LD_LIBRARY_PATH=$(wildcard $(CURDIR)/obj-*/lib):$(LD_LIBRARY_PATH) dh_auto_test ++ ++# No tests needed for docs ++override_dh_auto_test-indep: ++ ++override_dh_auto_install-arch: ++ dh_auto_install ++ ++override_dh_auto_install-indep: ++ # DESTDIR=$(CURDIR)/debian/tmp cmake --install obj-* --component data ++ DESTDIR=$(CURDIR)/debian/tmp $(MAKE) -C obj-*/doxygen install ++ DESTDIR=$(CURDIR)/debian/tmp $(MAKE) -C obj-*/dcmwlm/data install ++ DESTDIR=$(CURDIR)/debian/tmp $(MAKE) -C obj-*/dcmdata/data install ++ DESTDIR=$(CURDIR)/debian/tmp $(MAKE) -C obj-*/oficonv/data install ++ ++ ++override_dh_installdocs: ++ dh_installdocs ++ # do the doxygen / jquery fix: ++ dh_link -pdcmtk-doc usr/share/javascript/jquery/jquery.js usr/share/doc/dcmtk-doc/html/jquery.js ++ ++override_dh_install-arch: ++ dh_install # --list-missing ++ ++ ++.PHONY: get-orig-source diff --cc debian/source/format index 00000000,00000000..163aaf8d new file mode 100644 --- /dev/null +++ b/debian/source/format @@@ -1,0 -1,0 +1,1 @@@ ++3.0 (quilt) diff --cc debian/tests/control index 00000000,00000000..06cec718 new file mode 100644 --- /dev/null +++ b/debian/tests/control @@@ -1,0 -1,0 +1,3 @@@ ++Tests: run-unit-test ++Depends: python3-pydicom, @ ++Restrictions: allow-stderr diff --cc debian/tests/run-unit-test index 00000000,00000000..97dcb126 new file mode 100644 --- /dev/null +++ b/debian/tests/run-unit-test @@@ -1,0 -1,0 +1,142 @@@ ++#!/bin/sh ++set -e ++ ++pkg=dcmtk ++ ++CUR_DIR=`pwd` ++ ++ ++export LC_ALL=C.UTF-8 ++if [ "${AUTOPKGTEST_TMP}" = "" ] ; then ++ AUTOPKGTEST_TMP=$(mktemp -d /tmp/${pkg}-test.XXXXXX) ++ trap "rm -rf ${AUTOPKGTEST_TMP}" 0 INT QUIT ABRT PIPE TERM ++fi ++ ++cp -a /usr/lib/python3/dist-packages/pydicom/data/test_files/CT_small.dcm "${AUTOPKGTEST_TMP}" ++cp -a /usr/share/dcmtk/dicom.dic "${AUTOPKGTEST_TMP}" ++ ++ ++export DCMDICTPATH=${AUTOPKGTEST_TMP}/dicom.dic ++ ++cd "${AUTOPKGTEST_TMP}" ++ ++echo "896048a80ff192ca8b6d9a1ba29d64fd CT_small.dcm" >> checksums ++ ++echo "Running Tests" ++ ++echo "Test 1" ++ ++dcm2json CT_small.dcm dcm2json.json ++ ++echo "Test 2" ++ ++dcm2xml CT_small.dcm dcm2xml.xml ++ ++echo "Test 3" ++ ++dcmconv --convert-to-latin1 CT_small.dcm dcmconv.out ++ ++echo "Test 4" ++ ++dcmcrle CT_small.dcm dcmcrle.out ++ ++echo "Test 5" ++ ++dcmdrle dcmcrle.out dcmdrle.out ++ ++echo "Test 6" ++ ++dcmdump CT_small.dcm > dcmdump.out ++ ++echo "Test 7" ++ ++dump2dcm dcmdump.out dump2dcm.dcm ++ ++echo "Test 8" ++ ++dcmftest CT_small.dcm ++ ++echo "Test 9" ++ ++# only write the dataset so that the file meta information ++# does not change and we can keep the same md5sum ++ ++dcmodify --write-dataset -e "(0008,0031)" CT_small.dcm ++ ++echo "Test 10" ++ ++dcm2pnm +Rtd CT_small.dcm dcm2pnm.png ++ ++echo "Test 11" ++ ++dcmscale +Sxf 2.0 CT_small.dcm dcmscale.out ++ ++echo "Test 12" ++ ++dcmcjpls CT_small.dcm dcmcjpls.out ++ ++echo "Test 13" ++ ++dcmdjpls dcmcjpls.out dcmdjpls.out ++ ++echo "Test 14" ++ ++dcml2pnm CT_small.dcm dcml2pnm.png ++ ++echo "Test 15" ++ ++cat <> crv.txt ++ 256.451947 1.000000 ++ 477.689863 128.822080 ++ 128.822080 477.689863 ++ 35.310137 128.822080 ++ 256.451947 1.000000 ++EOT ++ ++dcmmkcrv CT_small.dcm crv.txt dcmmkcrv.out ++ ++echo "Test 16" ++ ++dcmmklut dcmmklut.out ++ ++echo "Test 17" ++ ++dcmp2pgm CT_small.dcm dcmp2pgm.out ++ ++echo "Test 18" ++dcmpsmk CT_small.dcm dcmpsmk.out ++ ++echo "Test 19" ++mkdir dcmqridx ++ ++dcmqridx dcmqridx/ CT_small.dcm ++ ++echo "Test 20" ++dcmsign -q CT_small.dcm ++ ++if [ -f dcmqridx/index.dat ] && \ ++ [ -f dcmpsmk.out ] && \ ++ [ -f dcmmklut.out ] && \ ++ [ -f dcm2json.json ] && \ ++ [ -f dcm2xml.xml ] && \ ++ [ -f dcmconv.out ] && \ ++ [ -f dcmcrle.out ] && \ ++ [ -f dcmdrle.out ] && \ ++ [ -f dcmdump.out ] && \ ++ [ -f dump2dcm.dcm ] && \ ++ [ -f dcm2pnm.png ] && \ ++ [ -f dcmscale.out ] && \ ++ [ -f dcmcjpls.out ] && \ ++ [ -f dcmdjpls.out ] && \ ++ [ -f dcml2pnm.png ] && \ ++ [ -f dcmmkcrv.out ] && \ ++ [ -f dcmp2pgm.out ] && \ ++ md5sum --check checksums; then ++ ++ echo "PASS" ++ ++else ++ echo "FAIL" ++ ++fi ++ diff --cc debian/upstream/metadata index 00000000,00000000..b5a6e26c new file mode 100644 --- /dev/null +++ b/debian/upstream/metadata @@@ -1,0 -1,0 +1,15 @@@ ++Repository: https://git.dcmtk.org/?p=dcmtk.git ++Repository-Browse: https://git.dcmtk.org/?p=dcmtk.git ++Bug-Database: https://support.dcmtk.org/redmine/issues/ ++Reference: ++ Author: > ++ Lien, Chung-Yueh and Onken, Michael and Eichelberg, Marco and ++ Kao, Tsair and Hein, Andreas ++ Title: Open Source Tools for Standardized Privacy Protection of Medical Images ++ Journal: Progress in Biomedical Optics and Imaging - Proceedings of SPIE ++ Year: 2011 ++ Volume: 7967 ++ Pages: 79670M-79670M ++ DOI: 10.1117/12.877989 ++ URL: https://www.researchgate.net/publication/234046268_Open_Source_Tools_for_Standardized_Privacy_Protection_of_Medical_Images ++ eprint: https://www.researchgate.net/publication/234046268_Open_Source_Tools_for_Standardized_Privacy_Protection_of_Medical_Images diff --cc debian/watch index 00000000,00000000..09f6a971 new file mode 100644 --- /dev/null +++ b/debian/watch @@@ -1,0 -1,0 +1,4 @@@ ++version=4 ++ ++opts="filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%@PACKAGE@-$1.tar.gz%" \ ++ https://github.com/DCMTK/dcmtk/tags (?:.*?/)?DCMTK-(\d[\d.]*)\.tar\.gz